当前位置:首页 > Java

java如何去重

2026-03-04 03:42:16Java

去除Java集合中的重复元素

使用HashSet可以快速去除重复元素,因为HashSet不允许重复值。将集合转换为HashSet后再转换回原类型即可去重。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
Set<String> setWithoutDuplicates = new HashSet<>(listWithDuplicates);
List<String> listWithoutDuplicates = new ArrayList<>(setWithoutDuplicates);

使用Java 8 Stream去重

利用Streamdistinct()方法可以简洁地实现去重。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
List<String> listWithoutDuplicates = listWithDuplicates.stream()
        .distinct()
        .collect(Collectors.toList());

保留原始顺序的去重方法

如果需要保留元素的原始顺序,可以使用LinkedHashSet代替HashSet

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
Set<String> setWithoutDuplicates = new LinkedHashSet<>(listWithDuplicates);
List<String> listWithoutDuplicates = new ArrayList<>(setWithoutDuplicates);

自定义对象的去重

对于自定义对象,需要重写equals()hashCode()方法,确保对象之间的比较逻辑正确。

class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

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

使用Apache Commons Collections去重

如果项目中已经引入了Apache Commons Collections库,可以使用CollectionUtilsremoveDuplicates方法。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
CollectionUtils.removeDuplicates(listWithDuplicates);

使用Guava库去重

Guava库提供了ImmutableSet,可以方便地去除重复元素。

java如何去重

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
List<String> listWithoutDuplicates = ImmutableSet.copyOf(listWithDuplicates).asList();

标签: 何去java
分享给朋友:

相关文章

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorl…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

java如何创建项目

java如何创建项目

使用IDE创建Java项目(以IntelliJ IDEA为例) 打开IntelliJ IDEA,选择“New Project”。 在左侧菜单中选择“Java”,确保已配置JDK(若无需手动添加)。 勾…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

java面试官如何面试别人

java面试官如何面试别人

考察基础知识 从Java核心概念入手,包括面向对象特性(封装、继承、多态)、集合框架(ArrayList vs LinkedList、HashMap实现原理)、异常处理机制、多线程(线程池、锁机制)等…