筛选list集合中是否存在要比较的对象
2015-12-11 17:23
260 查看
开发中对数据处理的时候,为了不出现重复的数据很多情况需要我们对数据进行比较去重,这里我们来看看list中怎么来比较数据的.
当list中的对象是String类型的比较起来是比较简单代码如下:
当list中的对象是一个类,类里面有很多属性,我们只需要拿一个属性来比较,首先我们要重写类中的equals方法,然后再去比较
代码如下:
当比较的是类方法和第一种情况是一样的直接比较就行了.
当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); } }
当比较的是类方法和第一种情况是一样的直接比较就行了.
相关文章推荐
- oracle表,表空间,dbf数据文件三者的关系
- FFMPEG中的时间问题
- 数组的数组 散列的散列
- 安装homebrew时候的错误
- 51.简单使用SDWebImage(第三方类库)
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- 服务器监控Cacti
- 详解Java的Struts框架以及相关的MVC设计理念
- GlusterFS 3.5主要变更及特性
- 【Codeforces Round 273 (Div 2)D】【DP 滚动数组】 Red-Green Towers 两种颜色积木拼搭最高锯齿楼每层颜色相同的总方案数
- scala 正侧表达式 -多行文本处理
- lua读取xml
- GPIO实验
- Deepin linux 安装JDK的方法
- Codeforces Round #335 (Div. 2) D. Lazy Student 贪心
- Python多线程学习
- android 数据库sqlite的使用
- EM2040D数据采集软件SIS使用过程中图像实时显示问题(三)
- SAX解析XML实例——根据结点属性查找该结点包含的信息
- [Python]ctypes+struct实现类c的结构化数据串行处理