Java集合类——迭代器 Iterator 接口、序列 List 接口、ListIterator 接口

一、迭代器 Iterator 接口

1、概述

  • Iterator : 迭代器
  • 对 collection 进行迭代的迭代器
  • 依赖于集合而存在

2、Iterator 接口成员方法

  • boolean hasNext()
  • E next()
package liebiao;

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

public class ListDemo {
    public static void main(String[] args){
        List l = new ArrayList();//创建集合对象
        l.add("苍井空");
        l.add("是");
        l.add("一个");
        l.add("漂亮的");
        l.add("女孩");

        System.out.println(l);
        System.out.println("---------------------");

        //遍历集合
        Iterator it = l.iterator();
        //System.out.println(it);
        while (it.hasNext()){//使用hasNext()检查序列中是否还有元素。
            String s = (String)it.next();//使用next()获得序列中的下一个元素。
            System.out.println(s);
        }
    }
}

3、Iterator 接口的使用

案例:封装一个 Students 类

package liebiao;

public class Students {
    private String name;
    private int age;
    public Students(){//无参构造函数
        super();
    }
    public Students(String name,int age){
        super();
        this.name = name;
        this.age = age;
    }
    // 成员方法
    // getXxx()/setXxx()
    //Alt + Insert(idea 工具)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

存储自定义对象,并遍历

package liebiao;

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

public class ListDemo{
    public static void main(String[] args){
        List l = new ArrayList();//创建集合对象
        Students s1 = new Students("苍井空",18);
        Students s2 = new Students("波多野结衣",19);
        Students s3 = new Students("泷泽萝拉",20);
        Students s4 = new Students("水菜丽",21);

        l.add(s1);
        l.add(s2);
        l.add(s3);
        l.add(s4);

        //遍历集合
        Iterator it = l.iterator();
        while (it.hasNext()){
            Students s = (Students) it.next();
            System.out.println("姓名:"+s.getName()+"----年龄:"+s.getAge());
        }
    }
}

4、Iterator 接口的原理

二、序列 List 接口

1、概述

  • List :序列
  • List 接口是 Collection 的子类,也是抽象类
  • List 接口可以对列表中的每一个元素的插入位置进行控制,可以根据元素的索引访问元素
  • 与 Set 不同,List 列表允许有重复的元素

2、List 案例

  • 存储字符串并遍历

  • 存储自定义对象并遍历

3、List 接口的成员方法

扫描二维码关注公众号,回复: 6495035 查看本文章
  • void add(int index,E element)
  • E remove(int index)
  • E get(int index)
  • E set(int index,E element)
  • ListIterator listIterator()
package liebiao;

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

class ListDemo{
    public static void main(String[] args){
        List l = new ArrayList();
        l.add("hello");
        l.add("java");
        l.add("study");

        //指定位置添加元素
        l.add(1,"你好");

        //获取指定位置的元素
        System.out.println(l.get(3));
        System.out.println("--------------------");

        //根据索引删除元素
        System.out.println(l.remove(2));
        System.out.println("=======================");

        //根据索引修改元素
        System.out.println(l.set(0,"苍井空"));
        System.out.println(l);

        Iterator it = l.iterator();
        while (it.hasNext()){
            String s = (String)it.next();
            System.out.println(s);
        }
    }
}

三、ListIterator 接口

1、概述

  • ListIterator 接口是 List 接口的子类

2、ListIterator 接口的成员方法

  • boolean hasPrevious()
  • E previous()
  • ConcurrentModificationException(并行修改例外)

3、列表迭代器

package liebiao;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

class ListDemo{
    public static void main(String[] args){
        List l = new ArrayList();//创建List 集合对象

        l.add("hello");
        l.add("java");

        ListIterator it = l.listIterator();
        while (it.hasNext()){
            String s = (String)it.next();
            System.out.println(s);
        }
        System.out.println("------------------------");

        System.out.println(it.previous());//获取上一个元素
        System.out.println("==========================");

        while (it.hasPrevious()){//是否有上一个元素
            String s = (String)it.previous();
            System.out.println(s);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43860260/article/details/91993357