java-遍历集合的方式总结

时间:2023-02-17 16:17:42
1、遍历数组
  • for循环
  1.  //for循环遍历二维数组。  
  2.         for(int i = 0; i < arr.length; i++){  
  3.             for(int j = 0; j < arr[i].length; j++){  
  4.                 System.out.print(arr[i][j]);  
  5.             }  
  6.             System.out.println();  
  7.         }  
  • foreach
  1. for(int x[]:arr){  //外层遍历得到一维数组  
  2.             for(int e:x){  //内层遍历得到数组元素  
  3.                     System.out.print(e);  
  4.             }  
  5.             System.out.println();  
  6.         } 

2、遍历集合(list,set)

  • 超级for循环遍历
for(String attribute : list) {
System.out.println(attribute);
}

  • 对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历:
for(int i = 0 ; i < list.size() ; i++) {
system.out.println(list.get(i));
}

  • 集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代
Iterator it = list.iterator();
while(it.hasNext()) {
System.ou.println(it.next);
}  

3、遍历map
  • 转化为set用foreach
 //第一种:普遍使用,二次取值
  System.out.println("通过Map.keySet遍历key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }

  •  转化为set用iterator 
  //第二种
  System.out.println("通过Map.entrySet使用iterator遍历key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  • 转化为对象set用foreach
  //第三种:推荐,尤其是容量大时
  System.out.println("通过Map.entrySet遍历key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  • 遍历所有value
  //第四种
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }