通常情况下,实现列表去重的方式有:
- 创建一个新的result列表,循环原列表,如果元素不在result列表中,则放入
- 创建一个HashSet,将列表作为构造参数传入
下面介绍一种简单、高效的去重方式,借助于java8新特性引入的Stream类。代码如下
package cn.zokoo.goods.entity.dto; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 商品分类 * * @author Jack chen * @email 123@qq.com * @date 2018-12-10 17:14:36 */ @Data @NoArgsConstructor @AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class MchCatDTO implements Serializable { private static final long serialVersionUID = 1L; /** * 分类编号 */ private Integer catId; /** * 分类编码 */ private String catCode; /** * 分类名称 */ private String catName; /** * 上级分类编码 */ private String parentCatCode; /** * 排序 */ private Integer sortOrder; // 商户号 private String mchNo; //新增类型 1-导入 2-普通品类 3-活动品类 private String catType; /** * 分类图标 */ private String catIcon; /** * 是否显示:0-否 1-是 */ private String isShow; /** * 备注 */ private String remark; /** * 版本号 */ private Integer version; /** * 创建时间 */ private Date createTime; /** * 创建操作员 */ private String createOprNo; /** * 修改时间 */ private Date modifiedTime; /** * 修改操作员 */ private String editOprNo; private List<MchCatDTO> childList; private Long count; public MchCatDTO(String catCode, String parentCatCode) { this.catCode = catCode; this.parentCatCode = parentCatCode; } public MchCatDTO(String catCode, String parentCatCode,String catName) { this.catCode = catCode; this.parentCatCode = parentCatCode; this.catName = catName; } public MchCatDTO(Integer catId, String catCode, String catName, Integer sortOrder, String catIcon) { this.catId = catId; this.catCode = catCode; this.catName = catName; this.sortOrder = sortOrder; this.catIcon = catIcon; } public MchCatDTO(String catCode,String catName,String parentCatCode,Long count,String catType,Date createTime) { this.catCode = catCode; this.parentCatCode = parentCatCode; this.catName = catName; this.count = count; this.catType = catType; this.createTime = createTime; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MchCatDTO cat = (MchCatDTO) o; return Objects.equals(this.catCode, cat.catCode) && Objects.equals(this.catName, cat.catName); } @Override public int hashCode() { return Objects.hash(this.catCode,this.catName); } }
去重解决:catList = catList.stream().distinct().collect(Collectors.toList());
相关推荐
总的来说,这个Java项目展示了如何利用Java 8的Stream API和并行流特性来高效地处理文本文件,实现行级别的去重功能。这种技术对于处理大量文本数据,尤其是需要进行清洗和预处理的情况非常有用。在实际应用中,可以...
总的来说,Java 8的Stream API为处理列表数据提供了强大而灵活的方式,使得去重操作变得简单易行。通过理解并熟练运用这些方法,开发者可以提高代码的可读性和效率,更好地应对各种数据处理场景。
这种语法简化了代码,使得多行代码可以被一行简洁的Lambda表达式替代。 Java 8的Stream API是另一个显著的新特性,它提供了一种以声明性方式处理数据的机制。Stream API支持多种操作,如过滤、映射、聚合等,可以在...
")`这行代码可能意味着开发者原本打算再次分割`res`,以获取去重后的用户ID列表。然而,在当前的代码段中,这部分没有被执行,因为它是注释掉的。 在实际应用中,可以使用多种方法来实现字符串去重复,比如使用Java...
### 华为OD机试C卷 - 猜...通过以上分析和代码实现,我们可以看到这是一个典型的组合问题,需要利用回溯算法来解决。在实际的应用场景中,这种类型的算法可以广泛应用于密码破解、数据安全等领域,具有非常重要的意义。
- 考虑使用并行处理技术,如Java的并发库或Stream API,以加速数据处理。 6. **测试**: - 编写单元测试,确保各个功能模块正常工作。 - 可以使用Mockito模拟文件输入输出,测试核心逻辑的正确性,避免每次测试...
### JAVA+ORACLE面试题汇总知识点解析 #### 1. Overload、Override与Overloaded的区别...UNION自动去重,UNION ALL则保留重复行。 以上知识点涵盖了Java和Oracle领域的一些常见面试题,希望能帮助到即将面试的朋友。
在Java中,可以创建HashSet或利用Java 8的Stream API来去重。 4. **数据库索引**:对于大型数据库,可以在创建表时为唯一性字段建立唯一索引,这样在插入重复记录时,数据库会自动拒绝,从而避免了重复。 在给定的...
在Java编程语言中,"Streams"是一个核心概念,特别是在Java 8及更高版本中引入的新的API,称为“流API”(Stream API)。这个API极大地增强了处理集合数据的能力,允许程序员以一种声明式的方式处理数据,使代码更加...