1.集合
集合只能存放对象包括:
ArrayList 以数组的形式保存集合中的对象根据索引可以随机快速的访问集合中的元素。
List
LinkedList 以链表的结构保存集合中的元素,随机访问集合中的元素较差,但向集合中插入和删除集合中元素的时候性能出色。
Collection:
HashSet 是Set的实现类,不允许有重复的元素。
Set
TreeSet 不仅实现了Set同时也实现了 SortedSet接口因此遍历TreeSet时会默认的按元素升序排列,创建TreeSet时,使用
Comparator接口还可以实现定制排序,例如降序。
HashMap实现了Map接口,虽然能够通过哈希表快速的查找其内部的映射关系,但不保证映射的顺序,并且最多有一个Key为null,可以有无 数的null value。
Map:
TreeMap不仅实现了Map,还实现了SortedMap接口,存储时会按照Key进行排序,所以Key不能为null。
注意:1. Iterator的next()方法返回值类型是Object,使用Iterator迭代器时需使用Collection接口中的iterator()方法创建一个Iterator对象。
2.Comparator接口,即“比较器”,它提供一个compare(T o1,T o2)o1>o2,返回证书,通常为1,等于返回0,小于返回-1,如果想定制TreeSet的排序规则可以在实例化TreeSet对象时,将一个已经写好的比较器作为构造参数传入,或让TreeSet中的所有元素都实现Comparable接口。
3.HashSet和TreeSet都是Set的实现类,他们都不允许有重复的值,但是HashSet遍历元素时不关心元素的排序TreeSet类则会按升序进行遍历。
4.Map中如果只是添加删除元素用HashMap如果希望Map集合存在一定的顺序,应该使用TreeMap实现Map集合。
代码如下:
packagecom.zhao.cllection;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.LinkedList;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;importjava.util.TreeSet;public classCllectionAndMap {publicCllectionAndMap() {//TODO 自动生成的构造函数存根
}public static voidmain(String[] args) {
List list = new ArrayList<>();
list.add(7);
list.add(9);
list.add(6);
list.add(5);
list.add(9);
System.out.println("ArrayList:" +list);//List集合有Collection么有,将下标为一的元素改为10
list.set(1, 10);//创建迭代器
Iterator it =list.iterator();//判断是否有下一个元素
while(it.hasNext()) {//it.next() 获取集合中的元素
System.out.println("ArrayList:" +it.next());
}
Collection list1 = new ArrayList<>();
System.out.println("判断集合是否为空:"+list1.isEmpty());
list1.add(7);
list1.add(9);
list1.add(6);
list1.add(5);
System.out.println("判断集合是否为空:"+list1.isEmpty());//创建迭代器
Iterator it1 =list1.iterator();//判断是否有下一个元素
while(it1.hasNext()) {//it.next() 获取集合中的元素
System.out.println("List1:" +it1.next());
}
List linklist=new LinkedList<>();
linklist.add(3);
linklist.add(2);
linklist.add(1);//linklist.remove(1);
System.out.println("LinkedList"+linklist);for(Integer o:linklist){
System.out.println("LinkedList:"+o);
}//Set集合,不按特定的元素排序,只是简单的存放在集合中,元素不能重复//Collection set=new HashSet<>();
Set set=new HashSet<>();
set.add(6);
set.add(7);
set.add(9);//再添加一个9Set集合中也是一个9,Set中不允许存入重复的元素
set.add(9);
System.out.println("HashSet"+set);//创建迭代器
Iterator setit =set.iterator();//判断是否有下一个元素
while(setit.hasNext()) {//it.next() 获取集合中的元素
System.out.println("HashSet:" +setit.next());
}//TreeSet 默认将元素按照升序排序
Set treeset=new TreeSet<>();
treeset.add(2);
treeset.add(1);
treeset.add(0);
System.out.println("TreeSet"+treeset);for(int i=0;i
System.out.println("TreeSet:"+i);
}
Map map=new HashMap<>();
map.put("姓名","赵");
map.put("性别","男");
map.put(null,"HashMap允许键有一个键是空值");
Set mapkey=map.keySet();
System.out.println("map的所有键值"+mapkey);//必须写成Collection Set不允许有重复的值所以会报 java.lang.ClassCastException
Collection mapvalues=map.values();
System.out.println("map的所有值"+mapvalues);//遍历它的值,键类似
Iterator mapvalue=mapvalues.iterator();while(mapvalue.hasNext()){
System.out.println("HashMap.values():"+mapvalue.next());
}
Map treeMap=new TreeMap<>();
treeMap.put("c", 3);
treeMap.put("a", 1);
treeMap.put("b", 2);
treeMap.put("d", 0);//treeMap的键不能为null否则会报错 java.lang.NullPointerException//treeMap.put(null, 4);
Set treemapkey=treeMap.keySet();
System.out.println("treemapkey的所有键值"+treemapkey);//遍历它的值,键类似
Collection treeMapValues=treeMap.values();
System.out.println("treemapvalues的所有值"+treeMapValues);
Iterator treeMapValue=treeMapValues.iterator();while(treeMapValue.hasNext()){
System.out.println("TreeMapValue:"+treeMapValue.next());
}
}
}
View Code
ArrayList:[7, 9, 6, 5, 9]
ArrayList:7
ArrayList:10
ArrayList:6
ArrayList:5
ArrayList:9
判断集合是否为空:true
判断集合是否为空:false
List1:7
List1:9
List1:6
List1:5
LinkedList[3, 2, 1]
LinkedList:3
LinkedList:2
LinkedList:1
HashSet[6, 7, 9]
HashSet:6
HashSet:7
HashSet:9
TreeSet[0, 1, 2]
TreeSet:0
TreeSet:1
TreeSet:2
map的所有键值[null, 姓名, 性别]
map的所有值[HashMap允许键有一个键是空值, 赵, 男]
HashMap.values():HashMap允许键有一个键是空值
HashMap.values():赵
HashMap.values():男
treemapkey的所有键值[a, b, c, d]
treemapvalues的所有值[1, 2, 3, 0]
TreeMapValue:1
TreeMapValue:2
TreeMapValue:3
TreeMapValue:0