当前位置:首页 > Java

java如何实现去重

2026-03-18 14:31:08Java

使用HashSet去重

HashSet基于哈希表实现,自动去除重复元素。将集合或数组转换为HashSet即可去重。

List<String> list = Arrays.asList("a", "b", "a", "c");
Set<String> set = new HashSet<>(list); // 去重后的结果:["a", "b", "c"]

使用Stream API去重

Java 8及以上版本可用Stream的distinct()方法对集合去重。

java如何实现去重

List<String> list = Arrays.asList("a", "b", "a", "c");
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
// 结果:["a", "b", "c"]

使用TreeSet去重并排序

TreeSet基于红黑树实现,去重的同时按自然顺序或自定义比较器排序。

List<String> list = Arrays.asList("b", "a", "c", "a");
Set<String> set = new TreeSet<>(list); // 结果:["a", "b", "c"]

遍历手动去重

通过遍历原始集合,将不重复的元素添加到新集合中。

java如何实现去重

List<String> original = Arrays.asList("a", "b", "a", "c");
List<String> result = new ArrayList<>();
for (String item : original) {
    if (!result.contains(item)) {
        result.add(item);
    }
}
// 结果:["a", "b", "c"]

使用LinkedHashSet保持插入顺序

LinkedHashSet去重的同时保留元素原始插入顺序。

List<String> list = Arrays.asList("b", "a", "c", "a");
Set<String> set = new LinkedHashSet<>(list); // 结果:["b", "a", "c"]

针对对象列表去重

若需根据对象属性去重,需重写equals()hashCode(),或使用Stream自定义去重逻辑。

class Person {
    private String name;
    // 构造方法、getter/setter省略

    @Override
    public boolean equals(Object o) { /* 根据name判断相等性 */ }
    @Override
    public int hashCode() { /* 返回name的哈希值 */ }
}

List<Person> people = Arrays.asList(new Person("Alice"), new Person("Bob"), new Person("Alice"));
List<Person> distinctPeople = people.stream().distinct().collect(Collectors.toList());

分享给朋友:

相关文章

vue如何实现计算

vue如何实现计算

Vue 实现计算的方法 Vue 提供了多种方式来实现计算逻辑,包括计算属性、方法、侦听器等。以下是几种常见的实现方式: 计算属性(Computed Properties) 计算属性是基于它们的响应式…

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

vue如何实现拖动

vue如何实现拖动

Vue 实现拖动的常用方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性和相关事件实现拖动功能。 <template>…

vue如何实现单选

vue如何实现单选

使用原生 HTML 单选按钮 在 Vue 中可以直接使用 HTML 的原生单选按钮,通过 v-model 绑定数据。 <template> <div> <…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

vue如何实现加减

vue如何实现加减

在 Vue 中实现加减功能 使用数据绑定和事件处理 通过 Vue 的数据绑定和事件处理机制可以轻松实现加减功能。定义一个数据变量存储数值,通过方法增减该变量。 <template>…