我创建了两个数组变量:s1 和 s2 s1 包含 {ram,raju,seetha} s2 包含 {ram}
我想将两个数组作为集合相减,以获得以下结果:
拉朱西塔
我怎样才能做到这一点?
我创建了两个数组变量:s1 和 s2 s1 包含 {ram,raju,seetha} s2 包含 {ram}
我想将两个数组作为集合相减,以获得以下结果:
拉朱西塔
我怎样才能做到这一点?
如果数组中的元素是唯一的,则可以创建java.util.Set并执行removeAl(...)。如果它们不是唯一的,请改用java.util.List。
您可以通过遍历项目来获得差异:
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
包含两个数组之间的差异。
要自己实现这一点(例如,如果这是家庭作业并且您还没有了解 Java 集合 API),您可以这样处理:对于第一个数组中的每个元素,如果它不包含在结果中,则将该元素添加到结果中另一个数组。现实世界的解决方案是使用集合,如 Bart 所述。
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;
}
您可以从上面的代码中减少几行代码,但为了清楚起见,我保留了它。