杂谈记录——通过set判断一组数据是否重复

Posted 唐 昊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杂谈记录——通过set判断一组数据是否重复相关的知识,希望对你有一定的参考价值。

场景说明:

判断输入的字符是否存在重复,如果重复需要进行提醒

思路:

利用set不允许存储重复的字符,判断每次的size是否和填入的字符数量是否保持一致,如不一致,则有重复的字符

代码:

public class TestIsDuplicate 

    public static void main(String[] args) 
        TestIsDuplite testIsDuplite = new TestIsDuplite();


        boolean falg = true;
        int cuont = 0;
        Scanner scanner = new Scanner(System.in);
        List<String> list = new ArrayList<>();


        StringBuilder stringBuilder = new StringBuilder();
        while (true) 
            switch (scanner.next()) 

                case "chose1":
                    String val = scanner.next();

                    list.add(val);
                    cuont++;
                    System.out.println("增加成功");
                    break;
                case "chose2":
                    String s1 = scanner.next();
                    list.remove(s1);
                    cuont--;
                    System.out.println("删除成功");
                    break;
                case "chose12":
                    System.out.println("asdasd");
                    Set<String> set = new HashSet<>();
                    Set<String> msgset = new HashSet<>();

                    boolean check = testIsDuplite.check(set, msgset, list, cuont);
                    if(!check)
                        System.out.println("保存成功");
                    else 
                        System.out.println(list.size());
                        System.out.println(msgset.size());
                        for (String s : msgset) 
                            System.out.println("thisi " + s);
                        
                    


                    break;

            
        


    

    public boolean check(Set<String> set, Set<String> msg, List<String> list,int count) 
        for (String s : list) 
//            if(set.contains(s))
            boolean is = false;
            int bsize = set.size();
            set.add(s);
            if (set.size() == bsize) 
                is = true;
            
            if (is) 
                msg.add(s);
            
        
        if (count == set.size())
            return false;

        
        return true;

    




class Tom 
    String name;
    String pass;

    void Tom(String a, String b) 
        this.name = a;
        this.pass = b;
    



测试

chose1
A

Task :TestIsDuplite.main()
增加成功
chose1
A
增加成功
chose12
asdasd
2
1
thisi A
chose1
V
增加成功
chose12
asdasd
3
1
thisi A
chose2
A
删除成功
chose12
asdasd
保存成功

以上是关于杂谈记录——通过set判断一组数据是否重复的主要内容,如果未能解决你的问题,请参考以下文章

杂谈记录——利用set求交集

Set集合基础

java里有没有专门判断List里有重复的数据

数据结构与算法--集合(Set)--JS

Java Set集合通过重写hashCode和equals实现去重

查找一组 n 个连续数字是不是在 SQL 中重复