集合类
常用集合有List、Set、Map集合,其中List、Set继承了Collection接口。
Collection接口通常不能直接使用。由于List、Set都继承了Collection接口,因此Collection提供的add等基本方法对于List、Set是通用的。
collection遍历:
Collection<Integer> list=new ArrayList<>();
list.add(22);
list.add(33);
list.add(44);
Iterator<Integer> it=list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
List接口的实现类
ArrayList,数组,随机访问,线程不安全
List<String> l=new ArrayList<>();
l.add("ad");
l.add("ac");
l.remove(1);
l.add("dd");
Iterator<String> it=l.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
ad
dd
进程已结束,退出代码
LinkedList实现方法同理,链表,适合插入删除,线程不安全。
Set接口
Hashset用哈希表(数组)存储,TreeSet底层是二叉树,元素排好序。
Map集合没有继承Collection接口,提供的是key到value的映射。
Map接口的实现类:
HashMap,没有同步,线程不安全。
Map<String,String> map=new HashMap<>();
Emp e4=new Emp("523","wuwu");
Emp e1=new Emp("364","zhanghsan" );
Emp e2=new Emp("272","wang");
Emp e3=new Emp("416","lisi");
map.put(e4.e_id,e4.e_value);
map.put(e1.e_id,e1.e_value);
map.put(e2.e_id,e2.e_value);
map.put(e3.e_id,e3.e_value);
Set<String> set=map.keySet();
Iterator<String> it=set.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str+map.get(str));
}
364zhanghsan
523wuwu
416lisi
272wang
进程已结束,退出代码0
class Emp{
public String e_id;
public String e_value;
public Emp(String e_id,String e_value){
this.e_id=e_id;
this.e_value=e_value;
}
public String getE_id() {
return e_id;
}
public void setE_id(String e_id) {
this.e_id = e_id;
}
public String getE_value() {
return e_value;
}
public void setE_value(String e_value) {
this.e_value = e_value;
}
}
TreeMap是用红黑树排序,不允许null,实现方法和HashMap同理,运行结果是升序的。