HashSet 对象去重复处理
来源:互联网 发布:女白色t恤淘宝店铺推荐 编辑:程序博客网 时间:2024/06/06 07:03
HashSet 对象去重复处理
背景
- 需要请求两个批量接口,一个需要的数据是String类型的数组,一个需要的对象类型的数组
- 为了防止重复调用接口中的数据,需要把请求的数据进行去重复。
选择使用集合
HashSet类(散列存放)
Java.util.HashSet类实现了Java.util.Set接口。
- 它不允许出现重复元素;
- 不保证集合中元素的顺序
- 允许包含值为null的元素,但最多只能有一个null元素。
public class BrandInfo { private String brandId; private String storeId; public String getBrandId() { return brandId; } public void setBrandId(String brandId) { this.brandId = brandId; } public String getStoreId() { return storeId; } public void setStoreId(String storeId) { this.storeId = storeId; }}
public class SetTest { public static void main(String[] args) { //String类型 HashSet<String> stringHashSet = new HashSet<>(); stringHashSet.add("wangjie"); stringHashSet.add("ABC"); stringHashSet.add("BC"); stringHashSet.add("ABC"); System.out.println("stringHashSet size "+stringHashSet.size()); //对象类型 HashSet<BrandInfo> brandInfoHashSet = new HashSet<>(); BrandInfo brandInfo1 = new BrandInfo(); brandInfo1.setBrandId("brand1"); brandInfo1.setStoreId("store1"); BrandInfo brandInfo2 = new BrandInfo(); brandInfo2.setBrandId("brand2"); brandInfo2.setStoreId("store2"); BrandInfo brandInfo3 = new BrandInfo(); brandInfo3.setBrandId("brand1"); brandInfo3.setStoreId("store1"); brandInfoHashSet.add(brandInfo1); brandInfoHashSet.add(brandInfo2); brandInfoHashSet.add(brandInfo3); System.out.println("brandInfoHashSet size "+brandInfoHashSet.size()); }}
stringHashSet size 3brandInfoHashSet size 3
brandInfoHashSet 中包含两个相同的对象 brandInfo1 和 brandInfo3
重写类的 equals 和 hashCode 方法
public class BrandInfo { private String brandId; private String storeId; public String getBrandId() { return brandId; } public void setBrandId(String brandId) { this.brandId = brandId; } public String getStoreId() { return storeId; } public void setStoreId(String storeId) { this.storeId = storeId; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; BrandInfo brandInfo = (BrandInfo) o; if (!brandId.equals(brandInfo.brandId)) return false; return storeId.equals(brandInfo.storeId); } @Override public int hashCode() { int result = brandId.hashCode(); result = 31 * result + storeId.hashCode(); return result; }}
再运行 SetTest 类
stringHashSet size 3brandInfoHashSet size 2
阅读全文
0 0
- HashSet 对象去重复处理
- 如何去重HashSet中的重复对象?
- HashSet添加对象去重
- java List 通过hashSet去重复
- HashSet保存自定义不重复对象
- List去重方法&HashSet判断元素重复
- 使用hashset键盘录入并去重复 遍历打印
- mysql的去重复处理
- Java集合HashSet中的两个对象怎样算重复
- Java集合HashSet中的两个对象怎样算重复
- 【Java学习笔记】Hashset判断自定义对象是否重复
- 向HashSet插入自定义对象判断是否重复
- ArrayList,HashSet判断对象是否重复的原理
- oracle去重复数据的处理方法
- 集合中的 对象的去重复
- JavaScript利用对象去重复值
- HashSet去重
- HashSet去重
- erlang高性能网络库esockd的编译和使用(三)-keepalive
- Java基本类型计算不准时,防坑妙招
- 03JXV支持分布式集群部署
- java学习之ArrayList容器类详解
- apply、call和bind的区别
- HashSet 对象去重复处理
- intellij idea怎么创建maven项目
- 【我的Java笔记】常用类_Character
- 2.14子数组之和最大
- Vue 父组件和子组件之间的双向数据流动 .sync【版本需要2.3.0+】
- 装载问题
- log4j.properties配置详解与实例
- tensorflow+win7 64位安装记录
- 解决loadrunner12不能破解、loadrunner11不支持IE11录制的问题