public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
/**
* 第一种:下标遍历
*/
System.out.println("============1-下标遍历==================");
for(int i = 0 ; i < list.size() ; i++){
System.out.println(i +" = "+list.get(i));
}
/**
* 第二种:forEach遍历
*/
System.out.println("===========2-forEach遍历================");
int count = 0;
for (String s : list) {
count ++;
System.out.println(count + " = "+ s);
}
/**
* 第三种:iterator迭代器遍历
*/
System.out.println("==========3-Iterator迭代器遍历============");
Iterator<String> iterator = list.iterator();
int counter= 0;
while(iterator.hasNext()){
counter ++;
System.out.println(counter +" =counter= " + iterator.next());
}
/**
* 第四种:jdk8的Lambda的表达式遍历(不需要下标)
*/
System.out.println("=========4-jdk8的Lambda的表达式(不需要下标)===========");
list.forEach(str ->{
System.out.println(str);
});
/**
* 第五种:jdk8的Lambda表达式遍历-(使用Stream.iterate获取下标)
*/
System.out.println("========5-jdk8的Lambda表达式-(使用Stream.iterate获取下标)===========");
Stream.iterate(0,i -> i + 1 ).limit(list.size()).forEach(i -> {
System.out.println(i + " =Stream.iterate= " + list.get(i));
});
/**
* 第六种:jdk8的Lambda表达式遍历-(使用IntStream.range获取下标)
*/
System.out.println("=========6-jdk8的Lambda表达式-(使用IntStream.range获取下标)===========");
IntStream.range(0,list.size()).forEach(i ->{
System.out.println(i + " =IntStream.range= " + list.get(i));
});
}
控制台输出:
============1-下标遍历==================
0 = A
1 = B
2 = C
===========2-forEach遍历================
1 = A
2 = B
3 = C
==========3-Iterator迭代器遍历============
1 =counter= A
2 =counter= B
3 =counter= C
=========4-jdk8的Lambda的表达式(不需要下标)===========
A
B
C
========5-jdk8的Lambda表达式-(使用Stream.iterate获取下标)===========
0 =Stream.iterate= A
1 =Stream.iterate= B
2 =Stream.iterate= C
=========6-jdk8的Lambda表达式-(使用IntStream.range获取下标)===========
0 =IntStream.range= A
1 =IntStream.range= B
2 =IntStream.range= C