Collection集合
Collection集合
常用方法
遍历
Iterator: 迭代器,集合的专用遍历方式
-
Iterator<E> iterator()
: 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引 -
常用方法
- boolean hasNext(): 判断当前位置是否有元素可以被取出
- E next(): 获取当前位置的元素,将迭代器对象移向下一个索引位置
public static void main(String[] args){ Collection<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); // 使用迭代器遍历集合 Iterator<String> it = list.iterator(); // 使用迭代器里面的方法遍历集合 while(it.hasNext()){ System.out.println(it.next()); } }
迭代器中删除的方法:
public static void main(String[] args){
//删除指定的元素
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
// 方法一:原来的方法
for(int i = 0; i < list.length(); i++){
String s = list.get(i);
if("b".equals(s)){
list.remove(i);
i--; // i--防止跳过相同的元素
}
}
// 方法二:迭代器删除
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
if("b".equals(s)){
it.remove();
}
}
}
增强for循环
简化数组和Collection集合的遍历
-
是JDK5之后出现的,其内部原理是一个Iterator迭代器
-
实现Iterable接口的类才可以使用迭代器和增强for (Collection实现了Iterable接口,而Map没有实现)
-
格式
for (元素数据类型 变量名 :数组或者Collection集合){ // 在此处使用变量即可,该变量就是元素 }
注意:在增强for中修改的元素,不会影响集合或数组中的元素。
三种循环的使用场景:
- 如果要操作索引,使用普通for循环
- 如果在遍历的过程中要删除元素,使用迭代器
- 如果仅仅想遍历,那么使用增强for
Collection集合具体可分为: