foreach遍利顺序问题
前言:
经常用foreach进行遍历数据,那么作为JDK1.5新增foreach遍历的顺序怎样的呢?
代码测试:
看以下代码,测试list有序集合foreach循环
1 ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1); 2 list.add(2); 3 list.add(3); 4 list.add(4); 5 list.add(5); 6 System.out.println(list); 7 for (Integer i : list) { 8 System.out.print(i); 9 }
结果:
[1, 2, 3, 4, 5]
12345
说明 有续集合foreach遍历是按照集合储存的顺序遍历的
那么无序集合是怎样的,我们以hashSet为例:
HashSet<String> set = new HashSet<String>(); set.add("num1"); set.add("axc"); set.add("gfr"); set.add("wer"); set.add("2354"); System.out.println(set); for (String i : set) { System.out.println(i); } 结果: [gfr, wer, 2354, num1, axc] gfr wer 2354 num1 axc
这里面存储是无序的,但是foreach遍历出来的数据还是按照直接输出集合的顺序输出
总结:
foreach使用方便,在写代码中可以经常使用。但也要注意,遍历过程中删除数据会报ConcurrentModificationException。