java 并交集运算

时间:2015-04-17 13:08:38   收藏:0   阅读:209

  在面试的过程中,忘记了List中还可以进行交并集运算,这也是常见的数据问题啊,这也是常见的数据结构问题---集合,面试的过程中一直没有想到这种数据结构

  java中API中已经集成了并交集的运算。

  代码:(from http://pengyan5945.iteye.com/blog/1311597)

  交集的API:使用retainAll即可

  并集的API:先removeAll 再addAll

技术分享
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ListTest {
    public static void main(String[] args) {
         testIntersection();
         testUnion();
         testIntersectionSet();
    }
    private static void testIntersection() {
         List<String> list1 = new ArrayList<String>();
         List<String> list2 = new ArrayList<String>();
         list1.add("abc");  list2.add("abc");
         list1.add("123");  list2.add("123");
         list1.add("ABC");
         list2.add("XYZ");
         list1.removeAll(list2);
         list1.addAll(list2);
         System.out.println("并集元素个数是:" + list1.size());      

    }
    private static void testIntersectionSet() {
         List<String> list1 = new ArrayList<String>();
         List<String> list2 = new ArrayList<String>();
         list1.add("abc");  list2.add("abc");
         list1.add("123");  list2.add("123");
         list1.add("ABC");
         list2.add("XYZ");
         Set<String> set =new HashSet<String>();
         addList2Set(set, list1);
         addList2Set(set, list2);
         System.out.println("并集元素个数是:" + set.size());      

    }
    private static void testUnion() {
         List<String> list1 = new ArrayList<String>();
         List<String> list2 = new ArrayList<String>();
         list1.add("abc");  list2.add("abc");
         list1.add("123");  list2.add("123");
         list1.add("ABC");
         list2.add("XYZ");
         list1.retainAll(list2);
         System.out.println("交集元素个数是:"+list1.size());
    }
    private static void addList2Set(Set<String> set,List<String> list){
        for (String str : list) {
            set.add(str);
        }
    }
}
View Code

 

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!