Iterator Study 【002】

[code]

尚学堂_马士兵_第七章_Iterator学习

[/code]

[code]

package com.iterator;
import java.util.Iterator ;
import java.util.Collection ;
import java.util.HashSet ;
public class TestIterator {
public static void main(String ages[]) {
Collection c = new HashSet() ;
c.add(new Name("f1","11")) ;
c.add(new Name("f2","22")) ;
c.add(new Name("f3","33")) ;
Iterator i = c.iterator() ;
while(i.hasNext()) {
//next 返回值是object 类型,需要转换成相应类型,此处也用到多态
Name name = (Name)i.next() ; //将游标移到下一个位置
System.out.println(name.getFirstName()) ;
}

// remove
c.add(new Name("f4","4444")) ;
c.add(new Name("f5","55")) ;
c.add(new Name("f6","666")) ;
for(Iterator j =c.iterator(); j.hasNext(); ) {
Name name = (Name)j.next() ;
if(name.getSecondName().length() < 3 )
j.remove();
//c.remove(name) ; //不能调用容器本身的remove方法,iterator 内部执行了锁定,就其内部可看
}
System.out.println(c) ;
}

}
class Name {
private String firstName ;
private String secondName ;
public Name(String firstName, String secondName) {
this.firstName = firstName ;
this.secondName = secondName ;
}
public String getFirstName() {
return firstName ;
}
public String getSecondName() {
return secondName ;
}
public String toString() {
return firstName + " " + secondName ;
}
}

[/code]
[code]
结果:
f2
f1
f3
[f6 666, f4 4444]
[/code]
[code]
HashSet无序,所以遍历出来的结果会不一样

[/code]

[img]/upload/attachment/97705/3f248c66-ba3f-39e4-94c0-146902b9a47e.bmp[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java代码实现: Person抽象类: ```java public abstract class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public abstract void eat(); public abstract void sleep(); 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; } } ``` 学生类Student: ```java public class Student extends Person { private String studentNumber; public Student(String name, int age, String studentNumber) { super(name, age); this.studentNumber = studentNumber; } @Override public void eat() { System.out.println("学生 " + getName() + " 吃午饭"); } @Override public void sleep() { System.out.println("学生 " + getName() + " 睡觉"); } public void study() { System.out.println("我爱学习"); } public String getStudentNumber() { return studentNumber; } public void setStudentNumber(String studentNumber) { this.studentNumber = studentNumber; } } ``` 测试类Test: ```java import java.util.LinkedList; import java.util.Iterator; public class Test { public static void main(String[] args) { Student student1 = new Student("Tom", 18, "20210001"); student1.eat(); student1.sleep(); student1.study(); System.out.println("姓名:" + student1.getName() + ",年龄:" + student1.getAge() + ",学号:" + student1.getStudentNumber()); LinkedList<Student> students = new LinkedList<Student>(); students.add(new Student("Amy", 17, "20210002")); students.add(new Student("Bob", 18, "20210003")); students.add(new Student("Charlie", 19, "20210004")); students.add(new Student("David", 20, "20210005")); students.add(new Student("Emily", 21, "20210006")); Iterator<Student> iterator = students.iterator(); while (iterator.hasNext()) { Student student = iterator.next(); System.out.println("姓名:" + student.getName() + ",年龄:" + student.getAge() + ",学号:" + student.getStudentNumber()); student.eat(); student.sleep(); student.study(); } } } ``` 输出结果: ``` 学生 Tom 吃午饭 学生 Tom 睡觉 我爱学习 姓名:Tom,年龄:18,学号:20210001 姓名:Amy,年龄:17,学号:20210002 学生 Amy 吃午饭 学生 Amy 睡觉 我爱学习 姓名:Bob,年龄:18,学号:20210003 学生 Bob 吃午饭 学生 Bob 睡觉 我爱学习 姓名:Charlie,年龄:19,学号:20210004 学生 Charlie 吃午饭 学生 Charlie 睡觉 我爱学习 姓名:David,年龄:20,学号:20210005 学生 David 吃午饭 学生 David 睡觉 我爱学习 姓名:Emily,年龄:21,学号:20210006 学生 Emily 吃午饭 学生 Emily 睡觉 我爱学习 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值