您的位置:首页 > 其它

筛选list集合中是否存在要比较的对象

2015-12-11 17:23 260 查看
开发中对数据处理的时候,为了不出现重复的数据很多情况需要我们对数据进行比较去重,这里我们来看看list中怎么来比较数据的.

当list中的对象是String类型的比较起来是比较简单代码如下:

private List<String> list = new ArrayList<String>();

//比较list中是否存在name一样数据
private void compareData(){
String name = "小红";
//不一样就添加到list中
if (!list.contains(name)) {
list.add(name);
}
}


当list中的对象是一个类,类里面有很多属性,我们只需要拿一个属性来比较,首先我们要重写类中的equals方法,然后再去比较

代码如下:

//类
public class Entity {
private String Name;
private int age;
private String depict;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDepict() {
return depict;
}
public void setDepict(String depict) {
this.depict = depict;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((Name == null) ? 0 : Name.hashCode());
return result;
}
//重写equals方法
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Entity other = (Entity) obj;
if (Name == null) {
if (other.Name != null)
return false;
} else if (!Name.equals(other.Name))
return false;
return true;
}

}

//比较方法
private List<Entity> list = new ArrayList<Entity>();
private Entity entity;
//比较list中是否存在entity的name属性与新建的entity的name属性是否一样
private void compareData(){
entity = new Entity();
entity.setName("小红");
//不一样就添加到list中
if (!list.contains(entity)) {
list.add(entity);
}
}

当比较的是类方法和第一种情况是一样的直接比较就行了.


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: