删除重复元素,集合

来源:互联网 发布:盟军敢死队2 mac版 编辑:程序博客网 时间:2024/05/16 05:40
package copy;
import java.util.*;
//删除集合中的重复元素
public class Demo5 {



public static void main(String[] args) {
ArrayList list = new ArrayList();
Book b1 = new Book(101,"丰乳肥臀");
Book b2 = new Book(102,"悲伤逆流成河");
Book b3 = new Book(101,"丰乳肥臀");
Book b4 = new Book(103,"他的国");
list.add(b1);
list.add(b2);
list.add(b3);
list.add(b4);
ArrayList newLi = clearRepeatElements(list);
System.out.println(newLi);
}//注意这里有一个回扩,不能再public方法里面定义public方法
public static ArrayList clearRepeatElements(ArrayList list)
{
ArrayList newList = new ArrayList();//创造一个新的集合
Iterator it = list.iterator();//迭代器
while(it.hasNext())//进入循环的条件是是否有下一个元素
{
Book book = (Book)it.next();//获取到一个元素
if(!newList.contains(book)){
//如果新的集合不包含这个元素
newList.add(book);
//那么就添加

}

}
return newList;


}


}
class Book
{
int id;
String name;
public Book (int id,String name){//构造方法
this.id = id;
this.name = name;

}
//重写toString 方法
public String toString(){
return "{书名:"+name+"编号是:"+id+"}";

}
//重写equals方法
//如果不重写equals方法,那么使用的是从父亲继承的方法
//父类中这个方法的内部实现是,针对哈希值进行的比价o
//哈希值是根据内存地址进行的计算。
//如果是根据哈希值比较,那么只要NEW一个对象,你就会有一个对应的唯一的标准哈希值
//那就意味着你怎么比较都不详等
public boolean equals(Object obj){
Book book = (Book)obj;
//比较编号
return this.id == book.id ;
}

}
0 0