一、迭代器 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); } } }