JAVA集合迭代遍历和特性介绍

数组、集合:都是一种容器,用一个对象管理多个对象;数组不能自动增长;只能存放同类型的元素

 集合能自动扩容;部分集合允许存放不同类型的元素;

 

1、List: 有顺序的,允许存放重复的元素;

  遍历:for  迭代

  排序:Comparable Comparator   Collections.sort()

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;

LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高

Vector: 底层用数组实现List接口的另一个类 特点:重量级,占据更多的系统开销 线程安全

 

2、Set:无顺序的,元素不可重复(值不相同)

  遍历:迭代

  排序:SortedSet

HashSet:采用哈希算法来实现Set接口 ,唯一性保证:重复对象equals方法返回为true

 重复对象hashCode方法返回相同的整数,不同对象 哈希码 尽量保证不同(提高效率)

SortedSet:对一个Set排序

TreeSet:在元素添加的同时,进行排序。也要给出排序规则

  唯一性保证:根据排序规则,compareTo方法返回为0,就可以认定两个对象中有一个是重复对象。

LinkedHashSet:当遍历该集合时候,使用链表维护元素的次序LinkedHashSet将会以元素的添加顺序访问集合的元素。

 

3、Map:元素是键值对 key:唯一,不可重复 value:可重复

  遍历:先迭代遍历key的集合,再根据key得到value

HashMap:轻量级  线程不安全  允许key或者value是null

Hashtable:重量级 线程安全 不允许key或者value是null

Properties:Hashtable的子类,key和value都是String

 

SorteMap:元素自动对key排序

TreeMap:

 

4、 java集合关系的图

 

集合遍历迭代方式

第一种方式:for循环 
  for(int i = 0;i<list.size();i++){
   System.out.println(list.get(i).id+"  "+list.get(i).name);
  }
  

第二种方式:iterator迭代器 弱点是只能从头到尾 兼容性最好
  Iterator<Student> it = list.iterator();
  while(it.hasNext()){//hasNext()
   Student st = it.next();
   System.out.println(st.id+"  "+st.name);
  }
  

第三种方式:for each JK1.5以上使用  适用List Set Map
  for(Student t:list){
   System.out.println(t.id+"  "+t.name);
  }

 

Map集合遍历迭代

//第一种遍历MAP方法,效率相对较低
Iterator it = map.keySet().iterator();
while(it.hasNext()){
String key = (String) it.next();
int value = map.get(key);
System.out.println(key + "→" + value);
}
 
//第二种遍历MAP方法,效率相对较高
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()){
Entry e = iter.next();
String key = e.getKey();
int value = e.getValue();
System.out.println(key + "→" + value);
}

 

 

posted @ 2014-04-03 23:54  莫名字  阅读(934)  评论(0编辑  收藏  举报