首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个整数集合之间的差异

两个整数集合之间的差异
EN

Stack Overflow用户
提问于 2010-12-23 16:43:31
回答 3查看 2.2K关注 0票数 2

我有两组整数(即第一组是: 2,3,4,5,第二组是1,2,3,6)。如何找到加法数组(1,6)和减数组(4,5)?我说的是收藏,但我把它们放在Set中,如果你有其他想法,我也可以使用它。我也会将加号和减号放在不同的集合中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-23 16:56:46

我假设你指的是一个集合中的元素,而不是另一个集合中的元素。

代码语言:javascript
复制
Set<Integer> first = new LinkedHashSet<Integer>(Arrays.asList(2,3,4,5));
Set<Integer> second = new LinkedHashSet<Integer>(Arrays.asList(1,2,3,6));
Set<Integer> addition = subtract(first, second);
Set<Integer> subtracted = subtract( second, first);

public static <T> Set<T> subtract(Set<T> set1, Set<T> set2) {
    Set<T> ret = new LinkedHashSet<T>(set1);
    ret.removeAll(set2);
    return ret;
}
票数 6
EN

Stack Overflow用户

发布于 2010-12-23 16:58:34

不确定这是否是您需要的,但您可以使用google guava

代码语言:javascript
复制
import java.util.HashSet;
import java.util.Set;

import com.google.common.collect.Sets;


public class NumbersTest {

    public static void main(String[] args) {
        Set<Integer> set1 = new HashSet<Integer>(){{add(2);add(3);add(4);add(5);}};
        Set<Integer> set2 = new HashSet<Integer>(){{add(1);add(2);add(3);add(6);}};
        System.out.println("Nums Unique to set1: " + Sets.difference(set1, set2));
        System.out.println("Nums Unique to set2: " + Sets.difference(set2, set1));
    }
}

输出:

代码语言:javascript
复制
Nums Unique to set1: [4, 5]
Nums Unique to set2: [1, 6]
票数 4
EN

Stack Overflow用户

发布于 2010-12-23 16:55:30

当然不是最好的解决方案,但是..

代码语言:javascript
复制
public class IntsFind {
public static void main(String[] args) {
    List<Integer> first = Arrays.asList(2, 3, 4, 5);
    List<Integer> second = Arrays.asList(1, 3, 4, 6);

    List<Integer> missing = new LinkedList<Integer>();
    List<Integer> added = new LinkedList<Integer>(second);

    for (Integer i : first) {
        if (!added.remove(i)) {
            missing.add(i);
        }
    }

    System.out.println("Missing ints in second: " + missing);
    System.out.println("New ints in second: " + added);
}

}

打印:

秒内缺少整数的

:2,秒内缺少5个新的整数: 1,6

编辑不需要包装Arrays.asList,正如@Peter Lawrey指出的那样

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4517090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档