当前位置: 代码迷 >> 综合 >> 关于java中Collection集合的遍历(Iterator迭代输出、ListIterator、Enumeration、foreach)
  详细解决方案

关于java中Collection集合的遍历(Iterator迭代输出、ListIterator、Enumeration、foreach)

热度:6   发布时间:2023-12-25 05:27:17.0

已经学习过了基本的集合操作,那么对于集合的输出本身也是有多种形式的,可以使用如下的几种方式: · Iterator 迭代输出(90%)、ListIterator(5%)、Enumeration(1%)、foreach(4%) 但是在讲解输出的时候一定要记住以下的原则:“ 只要是碰到了集合,则输出的时候想都不想就使用 Iterator 进行输出 ”

Iterator

在这里插入图片描述

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class iterator {
    public static void main(String[] args) {
    // Iterator:可以迭代List和Set集合// ListIterator:只能迭代Lsit集合ArrayList<Integer> data = new ArrayList<>();data.add(1);data.add(2);data.add(3);data.add(4);data.add(5);// 循环遍历列表方式for(int i = 0 ; i < data.size();i++){
    System.out.println(data.get(i));}Iterator<Integer> iterator = data.iterator();// 通过 Collection 接口为其进行实例化之后,一定要记住,Iterator 中的操作指针是在第一条元素之上// 此处有一个指针的含义,首先判断下一个下标是否有/* while(iterator.hasNext()){// 遍历输出列表// next():将指针下移动一位并返回此时数据Integer i = iterator.next();System.out.println(i);} */// remove方法必须有值才能删除,所以指针移动一次到列表第一个元素上才能进行删除
// iterator.next();
// iterator.remove();
// System.out.println(data.size());// 从后往上,但使用的指针和从上往下的一样,所以,如果没有往下移动过指针,会报错。ListIterator<Integer> iterator1 = data.listIterator();
// iterator1.previous();// 因为此时没有移动过,add方法将元素添加到首位置iterator1.add(100);iterator1.next();iterator1.next();iterator1.set(200);System.out.println(data.size());iterator1.previous();iterator1.previous();iterator1.previous();while(iterator1.hasNext()){
    Integer i = iterator1.next();if(i.equals(2)){
    iterator1.remove();}else{
    System.out.print(i+"、");}}// 在使用 Iterator 输出的时候有一点必须注意,在进行迭代输出的时候如果要想删除当前元素,则只能使用 Iterator// 接口中的 remove()方法,而不能使用集合中的 remove()方法。否则将出现未知的错误。// 从实际的开发角度看,元素的删除操作出现的几率是很小的,基本上可以忽略,即:集合中很少有删除元素 的操作。// Iterator接口只能进行由前向后的单向输出。如果要想进行双向输出,则必须使用其子接口 —— ListIterator。// forEach:增强For循环,最早出现在c#中// 用于迭代数组或集合/*** 语法:* for(数据类型 变量名:集合或数组名){}* 遍历过程中不能对集合中的元素进行增删操作*/int[] arr = {
    6,5,4,3,2,1};for (int i:arr) {
    System.out.println(i);}System.out.println("----------我是华丽的分割线----------");ArrayList<String> arrayList = new ArrayList<>();arrayList.add("锄禾日当午");arrayList.add("汗滴禾下土");arrayList.add("谁知盘中餐");arrayList.add("粒粒皆辛苦");for(String i : arrayList){
    System.out.print(i+",");}}
}
ListIterator

在这里插入图片描述
具体栗子上方代码有

Enumeration

在这里插入图片描述

forEach

在使用 foreach 输出的时候一定要注意的是,里面的操作泛型要指定具体的类型,这样在输出的时候才会更加有针对性
具体实例最上方代码也有
在这里插入图片描述

toArray()方法

可以用在set集合中
在这里插入图片描述
在这里插入图片描述
Set集合没有提供get方法,只能通过toArray或者Iterator遍历来获取set中的数据
对于Map集合的遍历方法在:

https://blog.csdn.net/qq_38679239/article/details/112357371

  相关解决方案