单例集合-Iterator迭代器获取和删除元素

1.Iterator接口介绍

Collection接口继承了Iterable接口,在该接口中包含一个名为iterator的抽象方法,所有实现了Collection接口的容器类对该方法做了具体实现。iterator方法会返回一个Iterator接口类型的迭代器对象,在该对象中包含了三个方法用于实现对单例容器的迭代处理。

2.Iterator接口定义方法

boolean hasNext();
//判断游标当前位置是否有元素,如果有返回true,否则返回false;
Object next();
//获取当前游标所在位置的元素,并将游标移动到下一个位置;
void remove);
//删除游标当前位置的元素, 在执行完next后该操作只能执行一次;

3.迭代List接口类型容器

3.1 获取元素

    //获取元素
    //获取迭代器对象,
    Iterator iterator =list.iterator();
    //方式一:通过While循环获取元素,迭代器本身没有循环功能,可以通过循环
    while(iterator.hasNext()){
        String value = iterator.next();
        System.out.println(value);
    }
    System.out.println("--------------------------------");
    //方法二:通过for循环获取元素
    for (Iterator it = list.iterator();it.hasNext();){
        String value = it.next();
        System.out.println(value);
    }

3.2 删除元素


        //删除元素
        System.out.println("删除b----------------------------");
        for (int i = 0;i

3.3 List所有代码

package com.Iterator;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorListTest{
    public static void main(String[] args){
        //实例化容器
        List list = new ArrayList<>();
        //添加元素
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("a");

        //获取元素
        //获取迭代器对象,
        Iterator iterator =list.iterator();
        //方式一:通过While循环获取元素,迭代器本身没有循环功能,可以通过循环
        while(iterator.hasNext()){
            String value = iterator.next();
            System.out.println(value);
        }
        System.out.println("--------------------------------");
        //方法二:通过for循环获取元素
        for (Iterator it = list.iterator();it.hasNext();){
            String value = it.next();
            System.out.println(value);
        }

        //删除元素
        System.out.println("删除b----------------------------");
        for (int i = 0;i

3.4结果实现
单例集合-Iterator迭代器获取和删除元素_第1张图片

4.迭代set接口类型容器

4.1获取元素

//while循环迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("-------------------");
        
        //for循环迭代器
        for (Iterator it = set.iterator(); it.hasNext(); ) {
            String value = it.next();
            System.out.println(value);

        }

4.2 迭代器删除元素

     //删除元素
        System.out.println("----------------删除22----------------------------");
        Iterator iterator2 = set.iterator();
        while (iterator2.hasNext()) {
            String value = iterator2.next();
            if ("22".equals(value)) {
                iterator2.remove();
            }
        }
        //遍历
        for (String str2 : set) {
            System.out.println(str2);
        }

4.3 set所有代码

package com.Iterator;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class IteratorSetTest {
    public static void main(String[] args) {
        Set set = new HashSet<>();
        set.add("11");
        set.add("22");
        set.add("33");

        //while循环迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("-------------------");

        //for循环迭代器
        for (Iterator it = set.iterator(); it.hasNext(); ) {
            String value = it.next();
            System.out.println(value);

        }
        //删除元素
        System.out.println("----------------删除22----------------------------");
        Iterator iterator2 = set.iterator();
        while (iterator2.hasNext()) {
            String value = iterator2.next();
            if ("22".equals(value)) {
                iterator2.remove();
            }
        }
        //遍历
        for (String str2 : set) {
            System.out.println(str2);
        }



    }
}

注:在使用迭代器的时候注意next()方法在同一循环中不能出现俩次,否则会线程访问越界,java抛出NoSuchElementException异常,所以可以重新创建一个新的迭代器。

4.4 结果实现

单例集合-Iterator迭代器获取和删除元素_第2张图片

你可能感兴趣的:(iterator,java)