zoukankan      html  css  js  c++  java
  • java 并交集运算

      在面试的过程中,忘记了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
  • 相关阅读:
    MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐 级之间的区别?
    NOW()和 CURRENT_DATE()有什么区别?
    什么是非标准字符串类型?
    列的字符串类型可以是什么?
    实践中如何优化 MySQL ?
    可以使用多少列创建索引?
    数据库中的事务是什么?
    锁的优化策略?
    SQL 注入漏洞产生的原因?如何防止?
    强调事项段、其他事项段、关键审计事项
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4434239.html
Copyright © 2011-2022 走看看