迭代器
说明:迭代器是用来遍历集合的专用方式(数组没有迭代器),在Java中迭代器的代表是Iterator。
Collection集合获取迭代器的方法
方法名称 | 说明 |
Iterator<E> iterator() | 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的第一个元素 |
Iterator迭代器中的常用方法
方法名称 | 说明 |
boolean hasNext() | 询问当前位置是否有元素存在,存在返回true ,不存在返回false |
E next() | 获取当前位置的元素,并同时将迭代器对象指向下一个元素处。 |
示例
Collection<String> c = new ArrayList<>();
c.add("B");
c.add("A");
c.add("B");
c.add("C");
Iterator<String> it = c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
增强for循环
格式:
for (元素的数据类型 变量名 : 数组或者集合) {
}
注意:
增强for可以用来遍历集合或者数组。
增强for遍历集合,本质就是迭代器遍历集合的简化写法。
示例:
Collection<String> c = new ArrayList<>();
c.add("B");
c.add("A");
c.add("B");
c.add("C");
for(String ele: c){
System.out.println(ele);
}
Lambda表达式
说明:Lambda表达式,提供了一种更简单、更直接的方式来遍历集合。
方法:
方法名称 | 说明 |
default void forEach(Consumer<? super T> action) | 结合lambda遍历集合 |
示例:
Collection<String> lists = new ArrayList<>();
lists.add("B");
lists.add("A");
lists.add("B");
lists.add("C");
//初始
lists.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//简化1
lists.forEach(s -> {
System.out.println(s)
});
//简化2
lists.forEach(s -> System.out.println(s));
//简化3
lists.forEach(System.out:println );