知识点:
了解Stack类的使用。
具体类容:
Stack表示的是栈操作,栈是一种先进后出的数据结构。而Stack是Vector的子类。
public class Stack<E> extends Vector<E>
但是需要注意的是,虽然Stack是Vector子类,可是它不会使用Vector类的方法。
- 入栈:pubic E push(E item)
- 出栈:public E pop()
package conll;
import java.util.Stack;
public class TestDemo {
public static void main(String[] args) throws Exception {
Stack<String> all = new Stack<String>();
all.push("a");
all.push("b");
all.push("c");
all.push("a");
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop()); //EmptyStackException
}
}
标题:Properties子类
知识点:
国际化程序的特点:同一个程序,根据不同的语言选择资源文件,所有的资源文件后缀必须是“*Properties”。
Properties类的操作特点。
具体内容(次重点):
Properties是Hashtable的子类,主要是进行属性的操作(属性的最大特点是利用字符串设置key和value)。Properties类的定义结构如下:Public class Properties extends Hashtable<Object,Object>,在使用Properties类的时候不需要设置泛型类型,因为它一开始就只能够保存String。Properties中主要操作一下的操作方法:
1.设置属性:public Object setProperty(String key,String value)
2.取得属性:public String getProperty(String key),如果key不存在返回null
3.取得属性:public String getProperty(String key,String defaultValue),如果key不存在返回默认值。
范例:属性的基本操作
package conll;
import java.util.Properties;
import java.util.Stack;
public class TestDemo {
public static void main(String[] args) throws Exception {
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("ghgh", "没有此纪录"));
}
}
在Properties类里面提供有数据的输出操作:public void store(OutputStream out,String comments) throws IOException
范例:将属性信息保存在文件里面
package conll;
import java.io.File;
import java.io.FileOutputStream;
import java.io.Writer;
import java.util.Properties;
import java.util.Stack;
public class TestDemo {
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("D:"+File.separator+"area.properties")), "info");
}
}
也可以在制定的输入流中读取属性信息:public void load(InputStream inStream) throws IOException
范例:通过文件流读书属性内容
package conll;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.Writer;
import java.util.Properties;
import java.util.Stack;
public class TestDemo {
public static void main(String[] args) throws Exception {
Properties pro = new Properties();
pro.load(new FileInputStream(new File("D:"+File.separator+"area.properties")));
System.out.println( pro.getProperty("BJ"));
}
}
对于文件属性(资源文件)而言,除了可以使用Properties类读书之外,也可以使用ResourceBundle类读取,这也就是将输出的属性文件统一后缀为"*.properties"的原因所在。
总结:
1.资源文件的特点。
key=value
key=value
2.资源文件中的数据一定都是字符串。
标题:Collections工具类
知识点:
了解Collection类的功能。
具体内容:
在JAVA提供类库的时候考虑到用户的使用方便性,所以专门提供了一个集合的工具类——Collections,这个工具类可以实现List、Set、Map集合的操作。
为集合追加数据:public static <T> boolean addAll(Collection<?super T>c,T.....elements)
package conll;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestDemo {
public static void main(String[] args) throws Exception {
List<String> all = new ArrayList<String>();
Collections.addAll(all,"A","B","C","D","E");
Collections.reverse(all);
System.out.println(all);
}
}
面试题:请解释Collection与Collections的区别?
1.Collection是集合操作的接口。
2.Collections是集合操作的工具类,可以进行List、Set、Map集合的操作。