类集--Collections工具类, 栈操作:Stack(理解), 属性操作类:Properties(重点)

Collections工具类

在java.util包里面有一个Collections类
package classJI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class a {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> all=new ArrayList<String>();
Collections.addAll(all, "HELLO","WORLD","你好");
Collections.reverse(all);
System.out.println(all);
}
}
虽然Collections提供了集合的工具类,但是此类的意义不大
面试题:请解释Collection和Collections区别?
Collection是集合操作的父接口;
Collections是集合操作的工具类,提供了各种集合的操作方法支持。


栈操作:Stack(理解)

栈是一种先进后出的操作,Stack属于Vector一个子类,但是在进行方法操作的时候需要使用自己扩充的
方法
入栈:public E push(E item)
出栈:public E pop()

范例:观察栈操作
package classJI;
import java.util.Stack;
public class b {
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack<String> all=new Stack<String>();
all.push("A");
all.push("B");
all.push("C");
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop());//没数据,EmptyStackException
}
}


属性操作类:Properties(重点)


Properties是Hashable的子类,在Hashable操作的过程之中,key和value都可以保存任意的对象,但是
在Properties之中key和value只能够是String型数据,而且操作的方法如下
设置属性:public Object setProperty(String key,String value);
取得属性:public String getProperty(String key);没有属性返回null
取得属性:public String getProperty(String key,String defaultvalue);没有属性返回默认值

范例:验证Properties使用
package classJI;
import java.util.Properties;
public class Properties1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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类设置的属性也是可以通过IO操作进行输出的,定义了如下输出方法:
保存属性:public void store(OutputStream out,String comments) throws IOException
范例:将属性保存到文件
package classJI;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
public class Properties2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Properties pro=new Properties();
pro.setProperty("BJ", "北京");
pro.setProperty("TJ", "天津");
pro.store(new FileOutputStream(new File("D:"+File.separator+"area.properties")), "Area Info");
}
}


属性文件的后缀一般都是“*.properties”
既然可以通过输出流输出文件信息,那么也可以通过输入流读取文件信息,方法如下:
读取属性:public void load(InputStream inStream) throws IOException;
package classJI;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
public class Properties2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Properties pro=new Properties();
pro.setProperty("BJ", "北京");
pro.setProperty("TJ", "天津");
pro.load(new FileInputStream(new File("D:"+File.separator+"area.properties")));
System.out.println(pro.getProperty("BJ"));
System.out.println(pro.getProperty("GZ"));
}
}
需要注意的是在*.properties文件之中是不能直接使用中文的,必须转码,如果要转码可以使用一个指定的
转码工具“native2ascii.exe”日后的开发之中一定会使用到属性文件进行提示数据的保存,所以以上的代码
非常重要


总结:
1.类集就是一个动态对象数组,还不需要用户自己编写链表了
2.集合核心操作:
单值保存:Collection(public void add(),public Iterator iterator());
允许重复:List子接口(public E get(int index)),使用ArrayList子类,优先考虑此接口;
不允许重复:Set子接口,使用HashSet子类
偶对象保存:Map(put(),get(),entrySet()),主要使用HashSet子类,作为key的类型一般都是String
输出操作:
Iteartor(hasNext(),next());只要是集合就使用Iteartor输出
Enumeration(hasMoreElemenets,nextElement()),只有老的输出使用
3操作属性文件使用Properties。

猜你喜欢

转载自blog.csdn.net/a584898/article/details/81037514
今日推荐