JAVA遍历HashMap和ArrayList
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)); } } }