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);
- }
- }
- }
java 并交集运算的更多相关文章
- Java的位运算 待整理
位运算:二进制运算 Java的异或运算^ 真^假=真 假^真=真 假^假=假 真^真= 假,这四个是在网上copy的例子,真是1,假是0 但它却是说明了Java异或运算的基本法则,那就是:只要两个条件 ...
- java 取模运算% 实则取余 简述 例子 应用在数据库分库分表
java 取模运算% 实则取余 简述 例子 应用在数据库分库分表 取模运算 求模运算与求余运算不同.“模”是“Mod”的音译,模运算多应用于程序编写中. Mod的含义为求余.模运算在数论和程序设计中 ...
- Java之整数运算
Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号.四则运算规则和初等数学一致.例如: public class Main { public static void main(String[ ...
- [改善Java代码]集合运算时使用更优雅的方式
在初中代数中,我们经常会求两个集合的并集.交集.差集等,在Java中也存在着此 类运算,那如何实现呢? 一提到此类集合操作,大部分的实现者都会说:对两个集合进行遍历,即可求出结果.是的,遍历可以实现并 ...
- java list集合运算
list集合运算 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I ...
- java list 交集 并集 差集 去重复并集
package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public clas ...
- INTERSECT交集运算
INTERSECT交集是由既属于集合A,又属于集合B的所有元素组成的集合,如示意图1.
- 关于java按位操作运算
<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15:15 的原码: 00000000 00000000 00000000 00001111 补码 ...
- [改善Java代码]异步运算考虑使用Callable接口
多线程有两种实现方式: 一种是实现Runnable接口,另一种是继承Thread类,这两种方式都有缺点,run方法没有返回值,不能抛出异常(这两个缺点归根到底是Runable接口的缺陷,Thread也 ...
随机推荐
- TAB_JG_COMMAND_SERVERINFO
简介 存储设备基本信息 表结构
- 2019-08-07 纪中NOIP模拟B组
T1 [JZOJ1385] 直角三角形 题目描述 二维平面坐标系中有N个位置不同的点. 从N个点选择3个点,问有多少选法使得这3个点形成直角三角形. 数据范围 $3 \leq N \leq 1500$ ...
- 如何把U盘的两个盘或者多个盘合成一个
1.插入U盘,导出所有重要数据. 2.右击我的电脑,点管理打开设备管理器. 3.在设备管理器里找到磁盘管理. 4.在磁盘管理右侧出现下图: 5.如图是windows 7的界面. 6.找到U盘,图上是磁 ...
- 1.spring源码-BeanPostProcessor后置处理器
1.BeanPostProcessor接口的介绍: BeanPostProcessor是一个接口,其中有两个方法,postProcessBeforeInitialization和postProcess ...
- Entry小部件:
导入tkinter import Tkinter from Tinter import * import tkinter from tinter import * 实例化Tk类 root=tkinte ...
- 2019牛客多校第五场 F maximum clique 1 状压dp+最大独立集
maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想 ...
- 【Python】文本进度条
1.0代码: import time#引入time库 scale=10#文本进度条宽度 print("------执行开始------") for i in range(scale ...
- java基础(四)之this的使用
作用: 1.使用this调用成员变量和成员函数2.使用this调用构造函数 Person.java: class Person{ String name; //成员变量 void talk(Strin ...
- android 代码设置图标背景色(圆形图标)和图标颜色
原图: 1.改变图标颜色: mImageView.setColorFilter(Color.parseColor("#ff0000")); 效果: 2.改变图标背景色(主要是圆形图 ...
- C++-1019-Number Sequence
题意: 求数字112123123412345123456123456712345678123456789123456789101234567891011123456789101112123456789 ...