2016-11-15 Stack子类与Properties子类

前言:Stack表示栈操作,栈是一种先进后出的数据结构。而Stack是Vector的子类。

一、Stack子类

API文档:public class Stack <E> extends Vector <E>

但是需要注意的是,虽然Stack是Vector子类,可是它不会使用Vector类方法,它使用自己的方法:

|-出栈:public E push(E item);

|-出栈:public E pop();

范例代码:

package cn.mldn.demo27;
import java.util.Stack;
public class TestDemo {
    public static void main(String[] args) {
        Stack<String> all = new Stack<String>();
        all.push("A");
        all.push("B");
        all.push("C");
        all.push("D");
        System.out.print(all.pop());
        System.out.print(all.pop());
        System.out.print(all.pop());
        System.out.print(all.pop());
    }
}

运行程序:

注意:在进栈操作的时候,如果栈已经没有数据了,那么无法继续出栈。

二、Properties子类

国际化程序的特点:同一个程序,根据不同的语言环境选择资源文件,所有的资源文件后缀必须是“*.properties”。

properties是Hashtable的子类,主要是进行属性的操作(属性的最大特点是利用字符串设置Key和value),首先来观察Properties类定义结构。

public class Properties extends Hashtable<Object,object>

在使用properties类的时候不需要设置泛型类型,因为从它一开始出现只能够保存String,在Properties类里面主要使用如下的操作方法:

|-设置属性:public Object setProperty(String key,String vaule);

|-取得属性:public String getProperty(String key),如果key不存在返回null;

|-取得属性:public String getProperty(String key,String defaultValue),如果key不存在返回默认值。

范例代码:

package cn.mldn.demo27;
import java.util.Properties;
public class TestDemo01 {
    public static void main(String[] args) {
        Properties pro = new Properties();
        pro.setProperty("BJ", "北京");
        pro.setProperty("TJ", "天津");
        System.out.println(pro.getProperty("BJ"));
        System.out.println(pro.getProperty("GZ"));
        System.out.println(pro.getProperty("GZ","没有此记录"));
    }
}

运行结果:

在Properties类里面提供有数据的输出操作:public void store(OutputStream out,String comments)throws IOException

范例代码:

package cn.mldn.demo27;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
public class TestDemo02 {
    public static void main(String[] args)throws Exception {
        Properties pro = new Properties();
        pro.setProperty("BJ", "北京");
        pro.setProperty("TJ", "天津");
        //一般而言后缀可以随意设置,但是标准来讲,既然是属性文件,后缀就必须是*.Properties,这样做也是为了与国际化对应
        pro.store(new FileOutputStream(new File("E:"+File.separator+"area.properties")), "Area.info");
    }
}

运行结果:

       也可以从指定的输入流中读取属性信息:public void load(InputStream inStream)throws IOException;

范例代码:

package cn.mldn.demo27;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
public class TestDemo03 {
    public static void main(String[] args) throws Exception {
        Properties pro = new Properties();
        pro.load(new FileInputStream(new File("E:"+File.separator+"area.properties")));
        System.out.println(pro.getProperty("BJ"));
    }
}

运行结果:

总结:资源文件中的数据一定都是字符串。

时间: 2024-10-16 21:57:30

2016-11-15 Stack子类与Properties子类的相关文章

2016.11.15 Cocoapods安装过程

一.安装过程 1.移除默认源 $ gem sources --remove https://rubygems.org/ 2.添加源(现在不添加这个源了:https://ruby.taobao.org/,貌似不能用),改以下这个源 $ gem sources -a https://gems.ruby-china.org/ 3.查看源 $ gem sources -l 4.安装cocoapods(提供3个语句) $ sudo gem install cocoapods $ pod setup 过个几

站立会议----11.15

组名: nice! 组长: 李权组员: 韩媛媛 于淼 刘芳芳 宫丽君 项目名称:约跑(约吧) 时间:2016.11.15 地点:传媒西楼220室 代码地址:Https:  https://git.coding.net/muziliquan/niceGroup.git SSH: [email protected]:muziliquan/niceGroup.git 会议内容: 已完成的内容:登录前后变化(如退出登录将不再显示用户名等信息) 计划完成的内容:1.地图模块的生成,显示当前所在的跑场  2

Test on 11/15/2016

@kaike 1.还是字符串   (string.pas/c/cpp) [问题描述] 给定一个长度为n的字符串,其中只包含小写字母a,b 你要将一些b改成a,使其中的任意连续k个字符至少包含q个a 你要计算出最小修改次数. [输入] 第一行三个正整数n,k,q 第二行一个长度为n的字符串. [输出] 一行一个正整数,表示最少改变的数量. [输入输出样例1] string.in string.out 10 6 5 ababbaabbb 4 [数据范围] 数据范围: 30% n,k,q<=500 4

小酌重构系列[11]&mdash;&mdash;提取基类、提取子类、合并子类

概述 继承是面向对象中的一个概念,在小酌重构系列[7]--使用委派代替继承这篇文章中,我"父子关系"描述了继承,这是一种比较片面的说法.后来我又在UML类图的6大关系,描述了继承是一种"is a kind of"关系,它更偏向于概念层次,这种解释更契合继承的本质.本篇要讲的3个重构策略提取基类.提取子类.合并子类都是和继承相关的,如果大家对继承的理解已经足够深刻了,这3个策略用起来应该会得心应手. 提取基类 定义:如果有超过一个类有相似的功能,应该提取出一个基类,并

2016.11.18多态

下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 结论: java中基类对象不能当做子类对象使用,需要用强制转换来实现,子类对象变量=(子类名)基类对象名:错误的代码是d=m; d=c; 1.   左边的程序运行结果是什么?2.   你如何解释会得到这样的输出?3.   计算机是不会出错的,之所以得到这样的运行结果也是有原因的,那么从这些运行结果中,你能总结出Java的哪些语法特性? 运行结果截图: pu

每周进度及工作量统计——2016.11.24-2016.11.30

项目:连连看游戏 项目类型:四人小组项目 小组名称:天天向上 小组成员:王森.张政,张金生,栾骄阳 项目改进:final版本研发和维护 项目预期时间:2016.9.10-2016.12.8 2016.11.26-2016.11.27 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 讨论  13:24  13:43  0  19  20   设计  13:43  14:04  0  21  30 编码 功能优化  14:46  16:51  26  99  120 文档

2016/02/15 codes

return e.addTest = function(a,b){ if(typeof a == "object") for(var d in a )y(a,d)&& e.addTest(d,a[d]); else{a = a.toLowerCase(); if(e[a]!== c)return e; b = typeof b = "function"?b():b, typeof f != "undefined" &&am

11.15 Daily Scrum

今天是假期回来的第一个周末,也是我们团队的又一次进度汇总总结和调试工作开展,鉴于一周以来大家的工作有了很大的成果,所以,本次召开的会议主旨在于解决一些开发方面的细节问题,达成共识,为日后进一步的功能方面的扩展做一个好的开端,也是前一段工作方案的具体总结.关于老师问到上次的笔记本软件为何会用到数据库,理由很简单,我们就是觉得数据库用起来更方便才选用了它.因为我们的笔记本软件不仅仅是用来简单记忆事件,还有搜索和记忆碎片查找与整理功能,简单的文件存取,并不能保证查找的质量,通过关键词索引,建立概念模型

/*有数组{2,5,6,11,15,17,22,34,45},用户输入的任意整数 是否在数组中,如果不在打印没有该数字,如果在删掉该数字,并把后面的数字依 次往前挪动,最后用数字0补位。例如:用户输入22,那么数组中的数据变化为 {2,5,6,11,15,17,34,45,0}*/

void main() { int a[9]={2,5,6,11,15,17,22,34,35},i,j,temp,x,n=1; printf("请输入一个整数:"); scanf("%d",&x); for(i=0;i<9;i++) { if(x==a[i]) { for(j=i;j<8;j++) { a[j]=a[j+1]; } a[8]=0; n=2; break; } } switch(n) { case 1: printf("