最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
利用Java Set去除重复object的方法
时间:2017-02-08 编辑:简简单单 来源:一聚教程网
实例如下:
代码如下 | 复制代码 |
importjava.util.ArrayList; importjava.util.HashSet; importjava.util.List; importjava.util.Set; /** * 编写者:CP * */ publicclassSetDemo { publicstaticvoidmain(String[] args) { Set nameSet.add("张三"); nameSet.add("李四"); nameSet.add("王五"); nameSet.add("张三"); // 输出结果 张三 李四 王五 for(String name : nameSet){ System.out.print(name +"\t"); } // List集合去除重复基础数据 List nameList.add("张三"); nameList.add("李四"); nameList.add("王五"); nameList.add("赵六"); nameSet.addAll(nameList); // 输出结果 张三 李四 王五 赵六 for(String name : nameSet){ System.out.print(name +"\t"); } // 去除编号和用户名一样的 对象,需要重写 equals 方法 和 hashCode方法 User admin =newUser(1,"admin"); User user =newUser(2,"user"); User user1 =newUser(2,"user"); User admin1 =newUser(3,"admin"); Set userSet.add(admin); userSet.add(user); userSet.add(admin1); userSet.add(user1); // 输入结果 admin1 admin3 user2 for(User u : userSet){ System.out.print(u.username + u.id +"\t"); } System.out.println(user.equals(null)); } } classUser{ protectedInteger id; protectedString username; publicUser(Integer id, String username){ this.id = id; this.username = username; } /** * 如果对象类型是User 的话 则返回true 去比较hashCode值 */ @Override publicbooleanequals(Object obj) { if(obj ==null)returnfalse; if(this== obj)returntrue; if(objinstanceofUser){ User user =(User)obj; // if(user.id = this.id) return true; // 只比较id // 比较id和username 一致时才返回true 之后再去比较 hashCode if(user.id ==this.id && user.username.equals(this.username))returntrue; } returnfalse; } /** * 重写hashcode 方法,返回的hashCode 不一样才认定为不同的对象 */ @Override publicinthashCode() { // return id.hashCode(); // 只比较id,id一样就不添加进集合 returnid.hashCode() * username.hashCode(); } } |
-
上一个: Java命名规范介绍
相关文章
- java中list集合去除重复对象的实现 01-24
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24