`
olive6615
  • 浏览: 5537 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

HashSet去重

阅读更多

package com.huawei.test;

import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

public class FindDups
{
    /**
     * 去重1(重复数据只保留一条)
     * 去重后保持原有顺序
     * @param arr 数组
     */
    public static void findDup1(String[] arr)
    {
        Collection<string> noDups = new LinkedHashSet<string>(Arrays.asList(arr));
        System.out.println("(LinkedHashSet) distinct words:    " + noDups);
    }

    /**
     * 去重2(重复数据只保留一条)
     * 去重后顺序打乱
     * @param arr 数组
     */
    public static void findDup2(String[] arr)
    {
        Collection<string> noDups = new HashSet<string>(Arrays.asList(arr));
        System.out.println("(HashSet) distinct words:    " + noDups);
    }
    
    /**
     * 去重3(重复数据只保留一条)
     * 去重后顺序打乱
     * @param arr 数组
     */
    public static void findDup3(String[] arr)
    {
        Set<string> s = new HashSet<string>();
        for (String a : arr)
        {
            if (!s.add(a))
            {
                System.out.println("Duplicate detected: " + a);
            }
        }
        System.out.println(s.size() + " distinct words: " + s);
        
    }
    
    /**
     * 去重4(相同的数据一条都不保留,取唯一)
     * 去重后顺序打乱
     * @param arr 数组
     */
    public static void findDup4(String[] arr)
    {
        Set<string> uniques = new HashSet<string>();
        Set<string> dups = new HashSet<string>();
        
        for (String a : arr)
        {
            {
                if (!uniques.add(a))
                    dups.add(a);
            }
        }
        // Destructive set-difference
        uniques.removeAll(dups);
        
        System.out.println("Unique words:    " + uniques);
        System.out.println("Duplicate words: " + dups);
    }
    
    /**
     * 测试主方法
     * @param args 参数
     */
    public static void main(String[] args)
    {
        String[] arr = new String[] {"i", "think", "i", "am", "the", "best"};
        findDup1(arr);
        findDup2(arr);
        findDup3(arr);
        findDup4(arr);
    }
}


运行结果:
(LinkedHashSet) distinct words:    [i, think, am, the, best]
(HashSet) distinct words:    [think, am, best, the, i]
Duplicate detected: i
5 distinct words: [think, am, best, the, i]
Unique words:    [think, am, best, the]
Duplicate words: [i]</string></string></string></string></string></string></string></string></string></string>
分享到:
评论

相关推荐

    hashSet底层去重原理.xmind

    hashSet底层去重原理

    List 去重的6种方法(contains、迭代、hashSet、treeSet、linkedHashSet、stream)

    3:HashSet去重(无序) 此方法的实现代码较为简洁,但缺点是 HashSet 会自动排序,这样新集合的数据排序就和原集合不一致了 4:TreeSet去重(无序) 比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 ...

    java jsonarray 踢重 去重操作

    ### 实现方法:使用HashSet去重 在提供的代码片段中,使用了`HashSet`来实现`JSONArray`的去重操作。下面详细介绍这一过程: ```java import org.json.JSONArray; import java.util.HashSet; import java.util....

    java中List对象列表实现去重或取出及排序的方法

    2. 使用HashSet去重 使用HashSet可以去重List对象列表。HashSet是一个不允许重复元素的集合,添加元素时,会自动忽略重复元素。 ```java List<Student> list = new ArrayList(); // 添加元素到list Set<Student> ...

    删除重复字符-Python与Java中实现字符串去重方法详解

    而 Java 中则提供了三种解决方式:运用 HashSet 去重;采用 StringBuilder 进行逐一比较判定;还有针对固定字符集大小如 ASCII 的数组标记住状态法。各种方法均有其实现代码示例。 适用人群:软件开发者、初学者和...

    字符串去重

    ### 实现方法:利用HashSet去重 在Java中,`HashSet`类是基于哈希表实现的一个集合类,它不允许存储重复的元素。利用这个特性,我们可以轻松地去除字符串数组中的重复元素。 下面是一个详细的实现步骤: 1. **...

    String 字符串截取,获得指定字符数量,截取String两个内容之前内容并去重.pdf

    此外,本文还会涉及到使用HashMap进行批量替换,并且利用HashSet去重。 首先,让我们从字符串的截取开始。在Java中,可以使用String类的substring方法来截取指定范围的子字符串。具体来说,substring(int ...

    2020ZTE 傅里叶派题 参考答案.

    2. **HashSet去重**: `std::unordered_set`(或HashSet)是C++标准库中的一个容器,它提供了一种高效的方式来存储不重复元素。在处理数据规律优化时,可能需要消除重复的数据以避免影响结果,HashSet因其O(1)的平均...

    java学习笔记--第二天(list去重问题)

    1. 使用HashSet去重:HashSet是Java集合框架中的一个无序、不重复元素的集合。当我们尝试将一个列表添加到HashSet中时,由于HashSet不允许重复元素,它会自动过滤掉重复项。因此,我们可以通过以下方式去重: ```...

    完整版组合框、列表框去重复数据妙法.e.rar

    6. **使用HashSet去重并更新控件**:创建一个HashSet,然后将控件中的所有项添加到HashSet中。由于HashSet不允许重复,所以重复项会被自动去除。然后,清空控件,重新添加HashSet中的元素,这样就实现了去重。 7. *...

    去掉list中的重复对象

    1. **HashSet去重**: 使用HashSet进行去重是最常见且高效的方式。HashSet是一个不允许有重复元素的集合,它不保证元素的顺序,但提供了添加、删除和查找元素的快速操作。我们可以将List转换为HashSet,然后再转回...

    Java中对List去重 Stream去重的解决方法

    使用HashSet去重 HashSet是一种常见的集合类型,它具有自动去重的特性。我们可以将List中的元素添加到HashSet中,然后从HashSet中取出元素,这样就可以实现List去重。下面是一个简单的示例代码: ```java List...

    就业班JavaSE-day08每日作业卷1

    【ArrayList与HashSet去重】 在ArrayList中去重,可以借助HashSet。首先创建一个HashSet,然后将ArrayList中的元素逐个添加到HashSet中。由于HashSet不允许重复元素,所以重复的元素在添加过程中会被自动过滤掉,...

    leetcode热题100java实现代码

    再如第2题“两数之差”,要求找出数组中唯一的重复元素,我们可以利用Java的特性,借助HashSet去重,再遍历一次数组找出重复项。以下是Java实现: ```java public int singleNumber(int[] nums) { Set<Integer> ...

    set-collections-map

    #### 三、HashSet去重原理 在`HashSet`中保证元素不重复的核心在于元素的`hashCode()`和`equals()`方法。为了确保元素不重复,需要覆盖这些方法。 以`Student`类为例,假设我们要将`Student`对象存储在`HashSet`中...

    算法篇章1

    - **HashSet去重**:通过重写`hashCode()`和`equals()`方法,实现对象的唯一性。 8. **字典排序算法**:使用Tree数据结构(如TreeSet或TreeMap)进行排序,适用于需要保持元素顺序的场景。 9. **界面复用**: - ...

    java常用算法练习题

    4.不重复的3位数算法:该算法用于生成不重复的3位数,通过随机数生成和HashSet去重,实现不重复的3位数生成。该算法的时间复杂度为O(n),空间复杂度为O(n)。 5.水仙花数算法:该算法用于判断一个数是否为水仙花数,...

    50道JAVA基础知识题

    35. HashSet去重:HashSet会自动去重,所以添加相同的元素后,size为2。 36. HashMap操作:最后一个put操作会覆盖之前的值,所以输出"ls"。 37. 启动线程:通过`start`方法启动线程。 38. String对象创建:创建了...

Global site tag (gtag.js) - Google Analytics