※ 引述《swpoker (swpoker)》之铭言:
: ※ 引述《sunsam777 (行善为乐)》之铭言:
: : 数列一 整数阵列 值 1 2 3 4 5
: : 数列二 整数阵列 值 3 5
: : 要印出 数列二没有的 1 2 4
: : 请问该如何做呢?
: : 我能想到的大概就是用两个for循环
: : 大概这样,俩俩互相比对,共比10次 但要怎样才能印出1 2 4呢
: : 想了很久想不出来,可否指点下? 感谢不尽
: import java.util.*;
: public class Test{
: public static void main(String [] arg){
: System.out.println(Arrays.asList(Arrays.asList(1,2,3,4,5).stream().filter(x -> Arrays.asList(3,5).indexOf(x) < 0 ).toArray()));
: }
: }
: Result:
: [1, 2, 4]
: java 8 真的好用!!!
问题不是太清楚,要是 [1,2,3] 和 [3,4,5] 的话,你要结果是 [1,2,4,5] 吗?
是的话 Java5-7, 用 Guava 的话:
Set<Integer> result = Sets.difference(Sets.newHashSet(1,2,3,4,5),
Sets.newHashSet(3,5));
如果结果是想要 [1,2],就干脆
Set<Integer> result = Sets.newHashSet(1,2,3,4,5);
result.removeAll(Arrays.asList(1,2,4));
就好了