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

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

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

  交集的API:使用retainAll即可

  并集的API:先removeAll 再addAll

  1. import java.util.ArrayList;
  2. import java.util.HashSet;
  3. import java.util.List;
  4. import java.util.Set;
  5.  
  6. public class ListTest {
  7. public static void main(String[] args) {
  8. testIntersection();
  9. testUnion();
  10. testIntersectionSet();
  11. }
  12. private static void testIntersection() {
  13. List<String> list1 = new ArrayList<String>();
  14. List<String> list2 = new ArrayList<String>();
  15. list1.add("abc"); list2.add("abc");
  16. list1.add("123"); list2.add("123");
  17. list1.add("ABC");
  18. list2.add("XYZ");
  19. list1.removeAll(list2);
  20. list1.addAll(list2);
  21. System.out.println("并集元素个数是:" + list1.size());
  22.  
  23. }
  24. private static void testIntersectionSet() {
  25. List<String> list1 = new ArrayList<String>();
  26. List<String> list2 = new ArrayList<String>();
  27. list1.add("abc"); list2.add("abc");
  28. list1.add("123"); list2.add("123");
  29. list1.add("ABC");
  30. list2.add("XYZ");
  31. Set<String> set =new HashSet<String>();
  32. addList2Set(set, list1);
  33. addList2Set(set, list2);
  34. System.out.println("并集元素个数是:" + set.size());
  35.  
  36. }
  37. private static void testUnion() {
  38. List<String> list1 = new ArrayList<String>();
  39. List<String> list2 = new ArrayList<String>();
  40. list1.add("abc"); list2.add("abc");
  41. list1.add("123"); list2.add("123");
  42. list1.add("ABC");
  43. list2.add("XYZ");
  44. list1.retainAll(list2);
  45. System.out.println("交集元素个数是:"+list1.size());
  46. }
  47. private static void addList2Set(Set<String> set,List<String> list){
  48. for (String str : list) {
  49. set.add(str);
  50. }
  51. }
  52. }

java 并交集运算的更多相关文章

  1. Java的位运算 待整理

    位运算:二进制运算 Java的异或运算^ 真^假=真 假^真=真 假^假=假 真^真= 假,这四个是在网上copy的例子,真是1,假是0 但它却是说明了Java异或运算的基本法则,那就是:只要两个条件 ...

  2. java 取模运算% 实则取余 简述 例子 应用在数据库分库分表

    java 取模运算%  实则取余 简述 例子 应用在数据库分库分表 取模运算 求模运算与求余运算不同.“模”是“Mod”的音译,模运算多应用于程序编写中. Mod的含义为求余.模运算在数论和程序设计中 ...

  3. Java之整数运算

    Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号.四则运算规则和初等数学一致.例如: public class Main { public static void main(String[ ...

  4. [改善Java代码]集合运算时使用更优雅的方式

    在初中代数中,我们经常会求两个集合的并集.交集.差集等,在Java中也存在着此 类运算,那如何实现呢? 一提到此类集合操作,大部分的实现者都会说:对两个集合进行遍历,即可求出结果.是的,遍历可以实现并 ...

  5. java list集合运算

    list集合运算 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I ...

  6. java list 交集 并集 差集 去重复并集

    package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public clas ...

  7. INTERSECT交集运算

    INTERSECT交集是由既属于集合A,又属于集合B的所有元素组成的集合,如示意图1.

  8. 关于java按位操作运算

    <1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15:15 的原码: 00000000 00000000 00000000 00001111     补码 ...

  9. [改善Java代码]异步运算考虑使用Callable接口

    多线程有两种实现方式: 一种是实现Runnable接口,另一种是继承Thread类,这两种方式都有缺点,run方法没有返回值,不能抛出异常(这两个缺点归根到底是Runable接口的缺陷,Thread也 ...

随机推荐

  1. TAB_JG_COMMAND_SERVERINFO

    简介 存储设备基本信息 表结构

  2. 2019-08-07 纪中NOIP模拟B组

    T1 [JZOJ1385] 直角三角形 题目描述 二维平面坐标系中有N个位置不同的点. 从N个点选择3个点,问有多少选法使得这3个点形成直角三角形. 数据范围 $3 \leq N \leq 1500$ ...

  3. 如何把U盘的两个盘或者多个盘合成一个

    1.插入U盘,导出所有重要数据. 2.右击我的电脑,点管理打开设备管理器. 3.在设备管理器里找到磁盘管理. 4.在磁盘管理右侧出现下图: 5.如图是windows 7的界面. 6.找到U盘,图上是磁 ...

  4. 1.spring源码-BeanPostProcessor后置处理器

    1.BeanPostProcessor接口的介绍: BeanPostProcessor是一个接口,其中有两个方法,postProcessBeforeInitialization和postProcess ...

  5. Entry小部件:

    导入tkinter import Tkinter from Tinter import * import tkinter from tinter import * 实例化Tk类 root=tkinte ...

  6. 2019牛客多校第五场 F maximum clique 1 状压dp+最大独立集

    maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想 ...

  7. 【Python】文本进度条

    1.0代码: import time#引入time库 scale=10#文本进度条宽度 print("------执行开始------") for i in range(scale ...

  8. java基础(四)之this的使用

    作用: 1.使用this调用成员变量和成员函数2.使用this调用构造函数 Person.java: class Person{ String name; //成员变量 void talk(Strin ...

  9. android 代码设置图标背景色(圆形图标)和图标颜色

    原图: 1.改变图标颜色: mImageView.setColorFilter(Color.parseColor("#ff0000")); 效果: 2.改变图标背景色(主要是圆形图 ...

  10. C++-1019-Number Sequence

    题意: 求数字112123123412345123456123456712345678123456789123456789101234567891011123456789101112123456789 ...