JAVA遍历HashMap和ArrayList

List Map 基础信息

HashMap

最近写程序经常需要遍历集合,所以总结一下内容:

一、简单实现

Map map = new HashMap(); 
for(Object o : map.keySet()){ 
     //o: 返回的key
     //map.get(o):返回的value对象内容
     map.get(o); 
}

以上方法慢不说,效率也不高。

1.1 最经常使用也最可取的方法

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

 

1.2 最简单的方法

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的key值
for (Integer key : map.keySet()) {
    System.out.println("Key = " + key);
}

//遍历map中的value值
for (Integer value : map.values()) {
    System.out.println("Value = " + value);
}

 

二、使用Iterator遍历

Map map = new HashMap(); 
Iterator it = map.entrySet().iterator(); 
while (it.hasNext()) { 
    Map.Entry entry = (Map.Entry) it.next(); 
    Object key = entry.getKey(); 
    Object value = entry.getValue(); 
}

三、使用Iterator遍历

Map map = new HashMap();
Collection c = map.values();
Iterator iterator = c.iterator();
while(iterator.hasNext()) {
    Object value = iterator.next(); 
}

keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

ArrayList

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class Test {
    public static void main(String args[]) {
        List<String> list = new ArrayList<String>();
        list.add("test1");
        list.add("test2");
        list.add("test3");
        Iterator it1 = list.iterator();
        while (it1.hasNext()) {
            System.out.println(it1.next());
        }
        for (Iterator it2 = list.iterator(); it2.hasNext();) {
            System.out.println(it2.next());
        }
        for (String tmp : list) {
            System.out.println(tmp);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

 

posted @ 2013-09-05 15:30  李秋  阅读(1169)  评论(0编辑  收藏  举报