集合框架(二) 迭代器Iterator

来源:互联网 发布:访客网络永远保存密码 编辑:程序博客网 时间:2024/06/18 13:59

用来遍历List集合的迭代器Iterator:


简单介绍迭代器的使用:

import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Ch04 {public static void main(String[] args) {// TODO Auto-generated method stub//集合List list = new ArrayList<>();list.add(1);list.add(2);list.add(3);//遍历、循环、迭代其实本质差不多for(int i = 0 ;i < list.size();i++){//int包装类int n = (Integer) list.get(i);System.out.println(n);}//Iterator迭代器//1.获取迭代器Iterator iter  = list.iterator();//通过循环迭代//hasNext方法是判断是否存在下一个元素while(iter.hasNext()){//next迭代//Object强转int//Object --> Integer --> intint j = (int) iter.next();System.out.println(j);}}}
迭代器使用实例:

1.定义学生类(Student)保存学生信息,学生信息包括学号(id)、姓名(name)、年龄(age),使用ArrayList来保存学生信息,并迭代输出。

2.以上已经使用ArrayList存储了学员的信息,现在实行修改学员信息,根据输入的学号来进行修改(存入的学号是唯一的),修改后将最新的学员信息输出;如果没有该学员则提示信息。

3.在以上基础上实现删除学员信息,根据输入的学号来进行删除(存入的学号是唯一的),删除后将最新的学员信息输出,如果没有该学员,则提示信息。

Student类

public class Student {private int id;private String name;private int age;public Student(int id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}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;}}

StudentManager类

import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class StudentManager {private List list=new ArrayList<>();private Scanner in=new Scanner(System.in);/** * 初始化学生信息 */public void initData() {int id=0;System.out.println("********录入学生信息,当录入的编号为0时,结束录入*********");while(true) {System.out.print("请输入学生编号");id=in.nextInt();if(id==0) {break;}System.out.print("请输入学生姓名");String name=in.next();System.out.print("请输入年龄");int age=in.nextInt();Student stu=new Student(id, name, age);list.add(stu);}System.out.println("结束录入!");}/** * 迭代数据 */public void iterData() {System.out.println("学员的信息如下:");System.out.println("学号\t姓名\t年龄");Iterator iter=list.iterator();while(iter.hasNext()) {Student stu=(Student) iter.next();System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge());}}public void updateData() {//判断学生学号是否存在System.out.print("请输入要修改的学生学号:");int id=in.nextInt();//Iterator iter=list.iterator();while (iter.hasNext()) {Student stu = (Student) iter.next();//判断是否存在该学生//学生的编号和输入的编号是否相等if(stu.getId()==id) {//修改信息System.out.print("请输入要修改的学员姓名");stu.setName(in.next());System.out.print("请输入要修改的学员年龄");stu.setAge(in.nextInt());System.out.println("修改成功");//重新显示学员信息iterData();return;}}System.out.println("对不起,没有该学员");}public void deleteData() {//判断学生学号是否存在System.out.print("请输入要删除的学生学号:");int id=in.nextInt();//Iterator iter=list.iterator();while (iter.hasNext()) {Student stu = (Student) iter.next();//判断是否存在该学生//学生的编号和输入的编号是否相等if(stu.getId()==id) {//删除信息list.remove(stu);System.out.println("删除成功");//重新显示学员信息iterData();return;}}System.out.println("对不起,没有该学员");}}

Test类

public class StuTest {public static void main(String[] args) {StudentManager manager=new StudentManager();manager.initData();//初始化学生信息manager.iterData();//显示学生信息manager.updateData();//更新学生信息manager.deleteData();//删除学生信息}}

原创粉丝点击