首页 > 代码库 > 2016-11-15 Stack子类与Properties子类
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")); } }
运行结果:
总结:资源文件中的数据一定都是字符串。
2016-11-15 Stack子类与Properties子类