题目来自于论坛:
http://topic.youkuaiyun.com/u/20081012/14/3cc93688-1f7f-4985-806c-3f729c78261b.html
不过我使用的是TreeSet,因为题目要求是集合
其中的
retainAll是JDK自带的算法,我们看一下源代码
我们能增强的没有啥东西了。那个modifed可以删掉,不过意义不大。
不过我使用的是TreeSet,因为题目要求是集合
- public static void test2() {
- TreeSet<Integer> a = new TreeSet<Integer>();
- TreeSet<Integer> b = new TreeSet<Integer>();
- Random r = new Random();
- for (int i = 0; i < 30; i++) {
- a.add(r.nextInt(30));
- b.add(r.nextInt(30));
- }
- a.retainAll(b);
- System.out.println(a);
- System.out.println(b);
- System.out.println(a);
- }
- public boolean retainAll(Collection<?> c) {
- boolean modified = false;
- Iterator<E> e = iterator();
- while (e.hasNext()) {
- if (!c.contains(e.next())) {
- e.remove();
- modified = true;
- }
- }
- return modified;
- }
本文介绍了Java中TreeSet集合的retainAll方法的使用及其实现原理,通过具体示例展示了如何利用该方法来保留两个TreeSet集合中的共有元素。
844

被折叠的 条评论
为什么被折叠?



