我已经给出了两个数组
array 1 : a, b, c, d
array 2 : a, b, c
我用过
ArrayList<String> combine = new ArrayList<String> ()
array 1
和中的所有元素array 2
通过排序,我发现
a , a , b , b , c , c , d
你能告诉我如何比较这两个数组中的元素并返回不同的项目(例如d)吗?
我已经给出了两个数组
array 1 : a, b, c, d
array 2 : a, b, c
我用过
ArrayList<String> combine = new ArrayList<String> ()
array 1
和中的所有元素array 2
通过排序,我发现
a , a , b , b , c , c , d
你能告诉我如何比较这两个数组中的元素并返回不同的项目(例如d)吗?
就像是
ArrayList<String> charsA = new ArrayList<>();
charsA.addAll(Arrays.asList("a", "a", "b", "c", "d"));
ArrayList<String> charsB = new ArrayList<>();
charsB.addAll(Arrays.asList("a", "b", "c"));
charsA.removeAll(charsB);
System.out.println(charsA);
印刷
[d]
如果您不希望两个原始文件中的任何一个受到影响,显然使用不同的列表。
removeAll(Collection)
方法_
从此列表中删除包含在指定集合中的所有元素。
List<String> list1 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");
List<String> list2 = new ArrayList<String>();
list2.add("a");
list2.add("b");
list2.add("c");
List<String> distinctList = new ArrayList<String>();
for (String string : list1) {
if (!list2.contains(string)) {
distinctList.add(string);
}
}
如果你想用数组来做,那么你必须遍历两个数组并一一比较值。如果你想用 ArraysLists 来做,那么你可以围绕contains()
和remove()
方法构建你的逻辑。