热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获取Set的所有被拒绝的添加内容

如何解决《获取Set的所有被拒绝的添加内容》经验,为你挑选了1个好方法。

我对hashsets并不是很好,我想知道我是否能够使用.addAll方法检索hashets删除的重复项.所以在我的代码中,它要求用户输入最多20的值,如果它是-1,则中断.然后删除重复项并显示完成的列表.但现在我想显示已删除重复项的列表列表.例如:2 = 3个重复5 = 5个重复.这是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
 
public class Question {
    public static void main(String[] args) {
        ArrayList<integer> entries = new ArrayList<integer>();
        Scanner input = new Scanner(System.in);
        int counter = 0;
        int sentinel = -1;
        while (entries.size() <= 20) {
 
            System.out.println("Please enter some numbers into the entries list");
            entries.add(input.nextInt());
            if (entries.get(counter) == sentinel) {
                entries.remove(counter);
                break;
            }
            System.out.println("You've added: " + entries.get(counter) + ". So far your list is as shows: " + entries);
            counter++;
 
        }
 
        System.out.println("The list is: " + entries);
        System.out.println("Checking for Duplicates...");
 
        Set<integer> num = new LinkedHashSet<>(entries);
        num.addAll(entries); // The addAll method deletes duplicates
        System.out.println(num);
        entries.clear();
        entries.addAll(num);
 
        System.out.println("The Finished list is: " + entries);
 
    }
 
}
</integer></integer></integer>

CKing.. 5

不幸的是,a Set不会跟踪它拒绝的所有项目.您必须手动执行此操作.快速而肮脏的方法如下:

1
2
3
4
5
6
Set<integer> noDuplicates = new LinkedHashSet<integer>();
List<integer> rejects = new ArrayList<integer>();
for(Integer entry : entry) {
   if(!noDuplicates.add(entry)) { rejects.add(entry) }
}
</integer></integer></integer></integer>

请注意,当尝试向a添加重复元素时,该add方法返回false并拒绝添加请求Set.



1> CKing..:

不幸的是,a Set不会跟踪它拒绝的所有项目.您必须手动执行此操作.快速而肮脏的方法如下:

1
2
3
4
5
6
Set<integer> noDuplicates = new LinkedHashSet<integer>();
List<integer> rejects = new ArrayList<integer>();
for(Integer entry : entry) {
   if(!noDuplicates.add(entry)) { rejects.add(entry) }
}
</integer></integer></integer></integer>

请注意,当尝试向a添加重复元素时,该add方法返回false并拒绝添加请求Set.


推荐阅读
author-avatar
恐龙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有