当前位置:首页 > 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自动登录如何实现

实现自动登录的基本思路 自动登录通常通过结合本地存储(如localStorage或cookie)和token验证机制实现。用户首次登录成功后,服务器返回的认证token会被保存在客户端,下次打开应用时…

vue如何实现记住我

vue如何实现记住我

实现“记住我”功能的步骤 在Vue中实现“记住我”功能通常涉及前端保存用户登录状态(如token)到本地存储,并在下次访问时自动恢复登录状态。以下是具体实现方法: 使用localStorage或co…

vue如何实现默认页面

vue如何实现默认页面

Vue 实现默认页面的方法 在 Vue 项目中,通常需要设置一个默认页面(如首页或登录页)作为用户访问时的初始页面。可以通过路由配置实现。 配置路由默认跳转 在 Vue Router 中,使用 re…

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

vue如何实现重新实现主题

vue如何实现重新实现主题

Vue 主题切换的实现方法 使用 CSS 变量动态切换主题 定义主题相关的 CSS 变量,通过修改这些变量实现主题切换。在根元素(如 :root)中定义默认主题的变量,在特定类名下定义其他主题的变量。…