有以下两种方法遍历:
public void list1(List<String> list)
{
long l1 = System.currentTimeMillis();
for (String string : list)
{
System.out.println(string);
}
System.out.println(System.currentTimeMillis() - l1);
}
public void list2(List<String> list)
{
long l1 = System.currentTimeMillis();
Iterator<String> it = list.iterator();
while (it.hasNext())
{
String str = it.next();
System.out.println(str);
}
System.out.println(System.currentTimeMillis() - l1);
}
推荐使用第二种方式,性能比第一种快。
奥秘在于应用程序自身不维护遍历集合的"指针",所有的内部状态(如当前元素位置,是否有下一个元素)都由Iterator来维护,而这个Iterator由集合类通过工厂方法生成,因此,它知道如何遍历整个集合。应用程序不直接和集合类打交道,它总是控制Iterator,向它发送"向前","向后","取当前元素"的命令,就可以间接遍历整个集合。
|
|