Re: [问题] 关于比对两数列

楼主: adrianshum (Alien)   2014-10-29 16:11:36
※ 引述《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));
就好了
作者: swpoker (swpoker)   2014-10-30 10:30:00
哈~其实我是想要用JAVA8的FP拉~XD~
楼主: adrianshum (Alien)   2014-11-01 07:59:00
其实我是给原po的,回你的文因为对比来看比较容易明白

Links booklink

Contact Us: admin [ a t ] ucptt.com