黑马程序员技术交流社区
标题:
集合去除集合中字符串的重复值(自义定对象)_重写equals()~~~同学们可以来看看
[打印本页]
作者:
1126634865
时间:
2015-10-17 15:48
标题:
集合去除集合中字符串的重复值(自义定对象)_重写equals()~~~同学们可以来看看
import java.util.*;
import cn.itcast.beans.*;
public class ListTest {
public static void main(String[] args) {
ArrayList array = new ArrayList();
array.add(new Student("a",10));
array.add(new Student("b",20));
array.add(new Student("c",30));
array.add(new Student("a",10));
array = test(array);
System.out.println(array);
}
/*
* 定义方法,传递原始集合
* 对这个集合中的去重
*/
public static ArrayList test(ArrayList array){
//创建新的集合
ArrayList newArray = new ArrayList();
//迭代原始集合
Iterator it = array.iterator();
while(it.hasNext()){
//变量,保存原始集合中的元素
Object obj = it.next();
//判断这个元素obj,是不是存储在于新的集合中
//元素不存在,集合方法contains返回是false,存储
if(!newArray.contains(obj)){
//元素存储到新的集合
newArray.add(obj);
}
}
//返回新集合
return newArray;
}
}
/*
* 重写equals方法,建立Student类的自己的比较方式
* 比较的是对象的成员变量的值
* this obj 对象中的年龄
*
*/
public boolean equals(Object obj){
if(obj == null)
return false;
if(this == obj)
return true;
if(obj instanceof Student){
Student s = (Student)obj;
//变成this对象,和 s对象,比较自己的name age
//如果name相同,age也相同,返回true
return this.name.equals(s.name) && this.age == s.age;
}
return false;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2