题目来自于论坛:
http://topic.csdn.net/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;
- }