作者awert ( )
看板java
标题Re: [问题] Java是否有Array元素值比较函数?
时间Sun Aug 26 01:43:52 2012
※ 引述《rudolf1238 (Yo)》之铭言:
: 大家好,想请问大家JAVA是否有两个Array中,比较元素相同或相异的函数?
: 目前知道像PHP有array_intersect可列出两个阵列元素的相同值,
: 而array_diff则可列出两个阵列元素的差值,
: 不知JAVA中是否有这种好用的函数呢?
: 谢谢各位的帮忙,感激不尽!
没有
不过,没特别需求的话,自己弄一个也蛮快的。
用 List 或用 Set 做的话
List<Integer> a = Arrays.asList(1, 2, 3);
List<Integer> b = Arrays.asList(3, 4, 5);
List<Integer> intersect = new ArrayList<Integer>();
intersect.addAll(a);
intersect.retainAll(b);
System.out.println(intersect); // [3]
List<Integer> c = Arrays.asList(1, 2, 3);
List<Integer> d = Arrays.asList(3, 4, 5);
List<Integer> difference = new ArrayList<Integer>();
difference.addAll(c);
difference.removeAll(d);
System.out.println(difference); // [1, 2]
List<Integer> e = Arrays.asList(1, 2, 3);
List<Integer> f = Arrays.asList(3, 4, 5);
List<Integer> union = new ArrayList<Integer>();
union.addAll(e);
union.addAll(f);
System.out.println(union); // [1, 2, 3, 3, 4, 5]
如果有在用 guava library 的话,用 Sets 这个 class 就都有了
--
We who cut mere stones must always be envisioning cathedrals.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.35.186.241
※ 编辑: awert 来自: 114.35.186.241 (08/26 01:46)
1F:推 rudolf1238:原来还有retainall等用法,非常感谢你 :) 08/26 11:02