我所提供的两个阵列爪哇排序字符串数组,并返回不同项目
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)?
如果你想用数组来做,那么你必须循环两个数组并逐个比较值。如果你想用ArraysLists做到这一点,那么你可以建立你的逻辑围绕和remove()
方法。
喜欢的东西
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);
}
}