一、集合遍历的特有方式:迭代器
1.Iterator:迭代器,集合特有的遍历方式
- Iterator<E>iterator() :创建集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引位置。(用法:使用集合对象.iterator())
2.Iterator中常用方法
- boolean hasNext():判断当前位置是否有元素可以被取出
- E next():获取当前位置元素,并将迭代器对象移向下一个索引位置
代码示例:
public class CollectionDemo_03 {
public static void main(String[] args) {
//先创建一个集合对象,并存入数据
Collection<String> collection = new ArrayList<>();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("d");
collection.add("e");
//再调用集合对象的iterator()方法
Iterator<String> it = collection.iterator();
// hasNext():判断当前位置是否有元素可以被取出
boolean result1 = it.hasNext();
//next():取出当前位置元素,并将迭代器对象移向下一个索引位置
String result2 = it.next();
System.out.println(result1);
System.out.println(result2);
System.out.println("----------------------------------");
//遍历集合:用while循环
//先判断当前位置是否有元素可以取出,若有,再执行下面代码
while (it.hasNext()) {
System.out.print(it.next());
}
}
}
3.迭代器中的删除方法:
例子:删除集合中的指定元素
代码示例:
public class CollectionDemo_04 {
public static void main(String[] args) {
//先创建一个集合对象,并存入数据
Collection<String> collection = new ArrayList<>();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("d");
collection.add("e");
Iterator<String> it = collection.iterator();
while (it.hasNext()) {
String s = it.next();
//删除b元素
if ("b".equals(s)) {
it.remove();
}
}
System.out.println(collection);
}
}
二、增强for(快捷键:foreach)
1.什么是增强for?
-
JDK5版本后出现,其内部原理是一个Iterator迭代器
-
只有实现Iterable接口的类才能使用迭代器和增强for
2.增强for作用是简化数组或者Collection集合的遍历
3.格式:
for(元素的数据类型 变量名 :数组名或集合名){
输出元素即可;
}
(注:元素的数据类型与集合或数组的数据类型一致;变量名是任意起的,这个变量是第三方变量,在增强for当中修改第三方变量的值是不会影响到集合中的元素值的;输出元素即输出所起的变量名)
代码示例:
public class CollectionDemo_05 {
public static void main(String[] args) {
//先创建一个集合对象,并存入数据
Collection<String> collection = new ArrayList<>();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("d");
collection.add("e");
for (String s : collection) {
System.out.println(s);
}
}
}