java基础学习笔记之集合.doc
时间:2025-02-26
时间:2025-02-26
List(ArrayList、Vector、LinkedList)、Map(HashMap、TreeMap、Hashtable)、Set(HashSet、TreeSet)、equals、hashcode
java基础学习笔记之集合
集合(集合中的数据默认都是object类型,最好使用泛型来指定数据类型)
List:常见的有:ArrayList、vecdtor(旧的类,JDK1.2之后又升级的)、LinkedList Map:常见的有:HashMap、Hashtable、TreeMap
Set:常见的有:HashSet、TreeSet
List:List 中允许有内容重复的元素,因为在list中的数据是按照下标来排序的,下标不可能相同 ArrayList,实现了list接口,性能高,采用异步处理,但是线程不安全:
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");
for(String s:list){
System.out.println(s);
}
}
Linkedlist链表集合,可以模拟链表、堆栈
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList<String> link=new LinkedList<String>();
link.add("aa");
link.add("bb");
link.add("cc");
link.add("dd");
link.add("ee");
int len=link.size();//先将link的长度取出来
for(int i=0;i<len;i++){
System.out.println(link.poll());
}
}
Vector是旧的类,性能低,采用同步处理,线程安全,
List<String> vet=new Vector<String>();
vet.add("a");
vet.add("b");
vet.add(1, "bb");//将bb加到下标为1的元素前面,即加到b前
vet.add("c");
vet.add("hello");
vet.add("world");
vet.remove(0);//删除制定下标的元素
List(ArrayList、Vector、LinkedList)、Map(HashMap、TreeMap、Hashtable)、Set(HashSet、TreeSet)、equals、hashcode
vet.remove("c");//删除制定的元素
for(int i=0;i<vet.size();i++){
System.out.println(vet.get(i));
}
Map也可以使用泛型,map是根据key来获取value的,其中key不可以相同,如果相同,后一个value值将覆盖前一个value值,如下:
Map<String,String> map=new HashMap<String,String>();
map.put("name", "wei");
map.put("age", "21");
map.put("sex", "female");
System.out.println(map.get("name"));//根据key来取value的值
//如果要遍历,通过keySet()这个方法获取所有key的集合
Set<String> keys=map.keySet();
for(String k:keys){
System.out.println(k+" "+map.get(k));//用key来取value值
}
注意:map里有自己的一套算法,所以在输出遍历的结果时,不一定是按照我们添加元素的顺序排列出来的
Hashtable和HashMap 的区别:hashtable是同步处理,性能较低;hashmap是异步处理,性能较高;hashmap可以设置null值,hashtable不能设置null值
,否则会出现空指向异常
Map<String,String> hm=new HashMap<String,String>();
hm.put("name", "aa");
hm.put("age", null);
System.out.println(hm);
输出的结果为:{age=null, name=aa}
Map<String,String> htm=new Hashtable<String,String>();
htm.put("name", "aa");
htm.put("age", null);
System.out.println(htm);
输出结果报错:Exception in thread "main" http://ng.NullPointerException 空指针异常
属性操作类:Properties是专门操作属性文件的类
对属性的操作:
public static void main(String[] args) {
Properties ppt=new Properties();
ppt.setProperty("title", "Java");
List(ArrayList、Vector、LinkedList)、Map(HashMap、TreeMap、Hashtable)、Set(HashSet、TreeSet)、equals、hashcode
ppt.setProperty("author", "xiaoyan");
ppt.setProperty("publisher", "qinghua");
ppt.setProperty("time", "1991-01-01");
System.out.println("可以查到的属性:"+ppt.getProperty("title"));
System.out.println("查不到的属性:"+ppt.getProperty("name"));//查不到的属性,返回默认值
System.out.println("查不到的属性:"+ppt.getProperty("age","没有此属性的记录")); }
//将属性写入普通文件中,并从文件中将内容读取出来,
//将内容向普通文件中保存
Properties pro=new Properties();
pro.setProperty("title", "Java");
pro.setProperty("author", "xiaoyan");
pro.setProperty("publisher", "qinghua");
File file=new File("e:"+File.separator+"e.txt");
OutputStream out=new FileOutputStream(file);
//pro.store(new FileOutputStream(new File("e:"+File.separator+"e.txt")), "Area Info"); pro.store(out, "Area Info");
//从文件中将内容读出
Properties pro1=new Properties();
InputStream input=new FileInputStream(file);
pro1.load(input);
System.out.println(pro1.getProperty("title"));
System.out.println(pro1.getProperty("author"));
System.out.println(pro1.getProperty("publisher"));
//先保存到xml文件中,在将其读出来
//将内容保存到XML中
Properties ppt1=new Properties();
File file=new File("e:"+File.separ …… 此处隐藏:4369字,全部文档内容请下载后查看。喜欢就下载吧 ……