Java遍历数组、List、Set、Map的种种方法
   1 分钟阅读    邵晨峰

Java遍历数组、List、Set、Map的种种方法

数组或list的遍历

double[] nums = new double[n];

for遍历

for(int i=0;i<nums.length;i++)
{
	result += nums[i];
}

for-each遍历

for(double item : nums)
{
	result += item;
}

lambda表达式

items.forEach(item->{
  if("C".equals(item)){
    System.out.println(item);
  }
});

直接引用函数

items.forEach(System.out::println);

set集合的遍历

HashSet<Double> nums = new HashSet<Double>();

for遍历

for(Iterator<Double> i = nums.iterator(); i.hasNext(); )
{
	result += i.next();
}

for-each遍历

for(double item : nums)
{
	result += item;
}

for(String i:hs)
{
	System.out.println(i);
}

Map的遍历

foreach

推荐方式

for (Map.Entry<String, Integer> entry : items.entrySet()) {
  System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
}

第二种

for (Integer in : map.keySet()) {
  //map.keySet() 返回的是所有key的值
  String str = map.get(in); //得到每个key多对用value的值
  System.out.println(in + "   " + str);
}

第三种

Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
   Map.Entry<Integer, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

lambda表达式

items.forEach((k,v)->{
  System.out.println("Item : " + k + " Count : " + v);
  if("E".equals(k)){
    System.out.println("Hello E");
  }
});