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

来源:互联网 发布:mysql front 乱码 编辑:程序博客网 时间:2024/06/07 03:10

开发中对数据处理的时候,为了不出现重复的数据很多情况需要我们对数据进行比较去重,这里我们来看看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;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((Name == null) ? 0 : Name.hashCode());return result;}//重写equals方法@Overridepublic 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);}}

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






0 0
原创粉丝点击