JAVA-检查两组数字列表是否相同的程序

时间:2014-03-20 20:18:39

标签: java set intersection

我的程序在内存中生成两个集合,我不想将它们写入文件。每组都有一组线。每一行都是一系列数字。我想检查这两个文件是否在java中具有相同的行集(java是必须的),有效。

例如:

set1 :
1 2 3  
3 4 5 6  
1 2 4 5 7  
8  
7  
1 2 4  

set2 :  
7  
3 4 5 6  
1 2 4 5 7  
1 2 3  
8  
1 2 4  

因此,在set1和set2的情况下,这组行是相同的,它们只是混乱。因此,对于这两个集合作为输入,我在java中的算法应该返回true。在这方面你能帮我吗?我使用哈希表来实现它,但它没什么用。

1 个答案:

答案 0 :(得分:0)

如果你的行是字符串,你可以做这样的事情

List<String> a = new ArrayList<>(Arrays.asList(new String[] { "1 2 3",
                "3 4 5 6", "1 2 4 5 7", "8", "7", "1 2 4" }));
List<String> b = new ArrayList<>(Arrays.asList(new String[] { "7",
                "3 4 5 6", "1 2 4 5 7", "1 2 3", "8", "1 2 4" }));

if (a.size() == b.size()) {
    a.removeAll(b);
    if (a.isEmpty())
        System.out.println("A and B are the same sets");
}