java 取交集方法retainAll

java 取交集方法retainAll

有两个集合newCoures和oldCourses,判断这两个集合是否包含相同的对象或元素,

可以使用retainAll方法:oldCourses.retainAll(newCoures)。

  1. 如果存在相同元素,oldCourses中仅保留相同的元素。
  2. 如果不存在相同元素,oldCourse会变为空。

如果有多个集合oldCourses1、oldCourses2、oldCourses3等,分别与newCourses比较,应该将newCourses统一放在后面,像这样:

oldCourses1.retainAll(newCoures);

oldCourses2.retainAll(newCoures);

oldCourses3.retainAll(newCoures);

import java.util.ArrayList;
import java.util.List;

/**
 *  测试retainAll();
 * Created by lgq on 2015/8/11.
 */
public class Test {

    public static void main(String[] args) {

        List<String> list1 = new ArrayList<String>();
        List<String> list2 = new ArrayList<String>();
        List<String> list3 = new ArrayList<String>();
        for (int i = 0; i < 20; i++) {
            list1.add(i+"");
            if(i%2 == 0) {
                list2.add(i+"");
            }
            list3.add(i+"@");
        }
        // list1 与 list2 存在相同元素,list1集合只保留list2中存在的元素
        list1.retainAll(list2);
        if(list1.isEmpty()) {
            System.out.println("不包含");
        } else {
            System.out.println("包含");
        }
        System.out.println(list1);
        // list1 与 list3 不存在相同元素,list1集合变为空
        list1.retainAll(list3);
        if(list1.isEmpty()) {
            System.out.println("不包含");
        } else {
            System.out.println("包含");
        }
        System.out.println(list1);
    }
}
时间: 2024-09-30 04:35:18

java 取交集方法retainAll的相关文章

Java使用正则表达式取网页中的一段内容(以取Js方法为例)

关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 表2.常用的限定符 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 表3.常用的反义代码 代码/语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S

Java web 常见对象的取值方法整理

一.从request中取值: 1.取param: servlet:  request.getParameter() request.getParameterValues() jsp脚本:request.getParameter() request.getParameterValues() jstl/el:  ${param.name} ${paramaValues.names[0]} struts ognl:<s:property value="#parameters.ParamName[

java取json 的方法

public static void main(String[] args) { String jsonStr = "[{\"varieties_type\":\"中证500指数\",\"open_granary\":\"0.0002\",\"close_granary\":\"0.0015\",\"days_close_granary\":\"0

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

package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class Test { public static void main(String[] args) {  List list1 =new ArrayList();  list1.add("1111");  list1.add("2222");  list1.add(&quo

C# 对List&lt;T&gt;取交集、连集及差集

※本文使用int為例,若為使用自訂之DataModel,需實作IEquatable<T>介面才能使用 1.  取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , 9 } List B : { 4 , 3 , 9 } 1 var intersectedList = list1.Intersect(list2); 結果 : { 3 , 9 } 判斷A和B是否有交集 1 bool isIntersected = list1.Intersect(list2).Count()

两个数组取交集的算法

在Lucene中,如果用户的查询向量Term t = {xx,xx,……},BooleanQuery为AND时,每个t---->对应得到的倒排列表,倒排列表由许多的倒排索引项构成,然后取其中重复的文档编号,然后进行排序.器核心思想类似于如下问题: 现有两个数组:int []data1 = {12,45,65,2,5} int []data2 = {12,5,-8,9},取其中的交集. 实现的方案有很多,现在采取一种时间和空间相对较好的算法:集合压缩算法,即:1.分别计算两个数组的min和max(

Java中的方法重写 与 final关键字

Java中的方法重写 与 final关键字 以下程序是否存在错误? class Base { private final void method() { System.out.println("In Base..."); } } class Sub extends Base { public void method() { System.out.println("In Sub..."); } } 答案 正确的. 使用final关键字可以声明类.成员变量和成员方法,一

1.28 Java基础总结 ①方法重载②构造方法

1.28 Java基础总结 ①方法重载②构造方法 一.方法的重载在同一个类中,方法名相同,形参列表不同访问修饰符.返回类型和是否重载无关:按顺序对应的形参列表类型不同即可 二.构造器在类创建一个实例时被调用,构造方法只能用new关键字调用目的:初始化实例,初始化类属性(0,0.0,null,false)无返回值,和类名一致,用来构造对象作用:为对象分配内存, 创建并初始化成员变量(通过类创建,所以可以在static方法中调用构造方法) 返回引用,引用.属性:引用.方法(所以无返回值) 三.构造方

java 安全验证方法

输入数据验证:虽然为方便用户而在客户端层上提供数据验证,但仍必须使用 Servlet 在服务器层上执行数据验证.客户端验证本身就不安全,因为这 些验证可轻易绕过,例如,通过禁用 Javascript. 一份好的设计通常需要 Web 应用程序框架,以提供服务器端实用程序例程,从而验证以下内容:[1] 必需字段[2] 字段数据类型(缺省情况下,所有 HTTP 请求参数都是"字符串")[3] 字段长度[4] 字段范围[5] 字段选项[6] 字段模式[7] cookie 值[8] HTTP 响