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也 ...
随机推荐
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。”
出现场景: From1中事件B绑定在事件A,事件A由工厂模式下的设备产生,当离开Form1时,设备中的事件A仍然会触发事件B,此时就会导致如上问题 原因(个人理解): 1.Form1已经被销毁了,但仍 ...
- Linux系统初学者的常见问题解决集结大全
http://www.embeddedlinux.org.cn/html/xinshourumen/200809/22-86.html 一. 如何建立多用户 提醒大家一句,别一直使用root用户,因为 ...
- 解决Bootstrap container样式左右内边距15px,导致屏幕不美观
首先上问题:此问题为bootstrap的 container样式导致,该样式默认左右内边距15px为了栅栏效果而设计,具体看源码css样式,如下图,右侧黄色边框边距和30px,实为两个div左浮动,将 ...
- LED Keychain - Widely Used Logo Item
The LED keychain makes it easy for people to carry their keys with them and carry them with them. It ...
- layer iframe 设置关闭按钮 和刷新和弹出框设置
layer弹出层的关闭问题 就是在执行添加或修改的时候,需要将数据提交到后台进行处理,这时候添加成功之后最理想的状态是关闭弹出层并且刷新列表的数据信息,之前一直想实现这样,可一直没有成功,今天决定 ...
- PHP+jPaginate插件制作无刷新分页实例
jPaginate是一款动感滚动分页插件,它的表现形式是像分页的按钮一样,有意思的是这些按钮却可以左右滚动,可以通过单击或 鼠标滑向点两侧的小箭头来控制按钮的左右滚动. 读取第一页数据: <di ...
- java8快速实现分组、过滤、list转map
public class TestEntity { private String c1; private String c2; public TestEntity(){} public TestEnt ...
- koa2第一天 安装koa2found 1 low severity vulnerability run `npm audit fix` to fix them, or `npm audit` for details
安装全局koa2:npm install -g koa2 -generator 创建一个koa2文件夹:koa2 -e koa2 进入koa2文件夹:cd koa2 安装npm模块:npm insta ...
- c++中sort函数调用报错Expression : invalid operator <的内部原理 及解决办法
转自:https://www.cnblogs.com/huoyao/p/4248925.html 当我们调用sort函数进行排序时,中的比较函数如果写成如下 bool cmp(const int &a ...
- Go_Context
如何通知子goroutine退出? 1. 使用全局变量 package main import ( "fmt" "sync" "time" ...