ArrayList和Map 的遍历
1.遍历 ArrayList
import java.util.*; public class Test{ public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("Hello"); list.add("World"); list.add("HAHAHAHA"); //第一种遍历方法使用 For-Each 遍历 List for (String str : list) { //也可以改写 for(int i=0;i<list.size();i++) 这种形式 System.out.println(str); } //第二种遍历,把链表变为数组相关的内容进行遍历 String[] strArray=new String[list.size()]; list.toArray(strArray); for(int i=0;i<strArray.length;i++) //这里也可以改写为 for(String str:strArray) 这种形式 { System.out.println(strArray[i]); } //第三种遍历 使用迭代器进行相关遍历 Iterator<String> ite=list.iterator(); while(ite.hasNext())//判断下一个元素之后有值 { System.out.println(ite.next()); } } }
解析:
三种方法都是用来遍历ArrayList集合,第三种方法是采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。
2.遍历 Map
1 import java.util.*; 2 3 public class Test{ 4 public static void main(String[] args) { 5 Map<String, String> map = new HashMap<String, String>(); 6 map.put("1", "value1"); 7 map.put("2", "value2"); 8 map.put("3", "value3"); 9 10 //第一种:普遍使用,二次取值 11 System.out.println("通过Map.keySet遍历key和value:"); 12 for (String key : map.keySet()) { 13 System.out.println("key= "+ key + " and value= " + map.get(key)); 14 } 15 16 //第二种 17 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); 18 Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); 19 while (it.hasNext()) { 20 Map.Entry<String, String> entry = it.next(); 21 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 22 } 23 24 //第三种:推荐,尤其是容量大时 25 System.out.println("通过Map.entrySet遍历key和value"); 26 for (Map.Entry<String, String> entry : map.entrySet()) { 27 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 28 } 29 30 //第四种 31 System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); 32 for (String v : map.values()) { 33 System.out.println("value= " + v); 34 } 35 } 36 }
map 里 1) keySet()可以通过它直接获取所有key,在得到value 2)有entrySet()方法可以通过这个方法获得所有entry集合 entry是map的内部类,容量大的时候可以更快遍历所有集合。3)entrySet()方法还有迭代器iterator可以遍历所有entry。4)通过for循环遍历所有map的values集合