package com.heima.genreic;
import java.util.ArrayList;
import java.util.Iterator;
import org.ietf.jgss.Oid;
/
2. 给集合添加Person 对象, 并去除重复
/
public class Z2 {
public static void main(String[] args) {
ArrayList<person> oldlist =new ArrayList<person>();
ArrayList<person> newist =new ArrayList<person>();
oldlist.add(new person("张三",7));
oldlist.add(new person("张三",7));
oldlist.add(new person("李四",17));
oldlist.add(new person("李四",18));
oldlist.add(new person("李四",17));
Iterator<person> it = oldlist.iterator();
//在调用之前要重写peron的toString方法。
while (it.hasNext()) {
person p = it.next();
if (!newist.contains(p)) {
newist.add(p);
}
}
System.out.println(newist);
}
}
class person{
private String name;
private int age;
public person() {
super();
}
public person(String name, int age) {
super();
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "person [name=" + name + ", age=" + age + "]";
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
person other = (person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
三种迭代的能否删除
普通for循环,可以删除,但是索引要
String[] ss = list.toArray(new String[list.size()]);//集合
for (inti = 0; i < arr.length; i++) {//遍历数组并交换
if (i == a) {
temp = arr[i];
arr[i] = arr[b];
arr[b] = temp;
}
迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
/
Iterator <String> it=list.iterator();
while (it.hasNext()) {
String st = it.next();
System.out.println(st);
}/
变形迭代
for (Iterator iterator = oldlist.iterator(); iterator.hasNext();) {//迭代循环并获取
Person per = (Person) iterator.next();
if (p.getAge()<per.getAge()) {//判断是否相等
p=per;
}
增强for循环不能删除
增强for概述
简化数组和Collection集合的遍历,输入fore,之后alt+/提示后自动补全
B:格式:
for(元素数据类型变量 :数组或者Collection集合) {
使用变量即可,该变量就是元素
}
作用
用于数组和集合的遍历
for (String st : list1) {//z增强for循环遍历
System.out.println(st);
}