2

我创建了两个数组变量:s1 和 s2 s1 包含 {ram,raju,seetha} s2 包含 {ram}

我想将两个数组作为集合相减,以获得以下结果:

拉朱西塔

我怎样才能做到这一点?

4

4 回答 4

7

如果数组中的元素是唯一的,则可以创建java.util.Set并执行removeAl(...)。如果它们不是唯一的,请改用java.util.List

于 2010-02-08T10:10:48.683 回答
4

您可以通过遍历项目来获得差异:

String[] s1 = {"ram", "raju", "seetha"};
String[] s2 = {"ram"};
List<String> s1List = new ArrayList(Arrays.asList(s1));
for (String s : s2) {
  if (s1List.contains(s)) {
    s1List.remove(s);
  }
  else {
    s1List.add(s);
  }
}

s1List包含两个数组之间的差异。

于 2010-02-08T10:16:49.863 回答
0

要自己实现这一点(例如,如果这是家庭作业并且您还没有了解 Java 集合 API),您可以这样处理:对于第一个数组中的每个元素,如果它不包含在结果中,则将该元素添加到结果中另一个数组。现实世界的解决方案是使用集合,如 Bart 所述

于 2010-02-08T10:21:22.730 回答
0
public ArrayList getUnique( ArrayList original, ArrayList subset ){
        ArrayList u = new ArrayList();
        Collection<ArrayList> o = original;
        Collection<ArrayList> s = subset;

        o.removeAll(s);
        u.addAll(o);

        return u;
}

您可以从上面的代码中减少几行代码,但为了清楚起见,我保留了它。

于 2015-10-08T16:51:31.907 回答