我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java 取交集方法retainAll的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java 取交集方法retainAll的实现

java 取交集方法retainAll

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

可以使用retainAll方法:


oldCourses.retainAll(newCoures)

如果存在相同元素,oldCourses中仅保留相同的元素。

如果不存在相同元素,oldCourse会变为空。

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


oldCourses1.retainAll(newCoures);
oldCourses2.retainAll(newCoures);
oldCourses3.retainAll(newCoures);

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);
    }
}

运行结果如下:

这里写图片描述

retainall的问题

在调用java中的retainall时遇到个问题

代码如下:


public static ArrayList<Integer> res_and(ArrayList<Integer> s1,ArrayList<Integer> s2)
 {
  s1.retainAll(s2);
//  System.out.println("s1=");
//  System.out.println(s1);
  return s1;

我定义了一个函数,用来求出s1和s2共有的部分,将其保存在s1中。

但是貌似这么写会导致s1中重复元素会重复出现两次。

解决办法:

在返回前加上一句


s1  = new ArrayList<Integer>(new HashSet<Integer>(s1));

即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java 取交集方法retainAll的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java两个list取交集的方法是什么

在Java中,可以使用retainAll()方法来取两个List的交集。这个方法会修改调用它的List,使其只保留与另一个List相同的元素。例如,假设有两个List:list1和list2,可以使用以下代码取它们的交集:```javali
2023-08-25

Golang 数组求交集的实现方法

golang 数组求交集有两种常用方法:使用内置 append 函数,通过循环判断元素是否在另一个数组中,叠加求交集。使用 map,通过创建映射表排除重复元素并高效获取交集。Golang 数组求交集的实现方法在 Golang 中,求解数组
Golang 数组求交集的实现方法
2024-04-03

mysql交集取反的方法是什么

要在MySQL中取两个表的交集的补集,可以使用NOT IN或LEFT JOIN进行操作。以下是使用这两种方法的示例:方法一:使用NOT INSELECT column_name FROM table1WHERE column_nam
mysql交集取反的方法是什么
2024-04-09

Java计算交集,差集,并集的方法示例

本文实例讲述了Java计算交集,差集,并集的方法。分享给大家供大家参考,具体如下:package math;import java.util.HashSet;import java.util.Set;public class Test {
2023-05-30

oracle两个结果集取交集的方法是什么

Oracle中可以使用INTERSECT运算符来取两个结果集的交集。例如,假设有两个查询语句:查询1:SELECT column1, column2FROM table1WHERE condition1;查询2:SELECT column1
2023-08-31

Java实现数据集合的多种方法

////=================显示连接型列表的使用========= import java.util.*; public class lis
2023-06-03

Map集合中获取key-value值的实现方法

这篇文章主要介绍了Map集合中获取key-value值的实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-22

java 集合之实现类ArrayList和LinkedList的方法

List 的方法列表 方法名 功能说明 ArrayList() 构造方法,用于创建一个空的数组列表 add(E e)
2023-05-30

java两个对象集合取差集的方法是什么

在Java中,可以使用以下几种方式来取两个对象集合的差集:1. 使用循环遍历方式:遍历第一个集合,检查每个元素是否存在于第二个集合中,如果不存在则加入差集集合中。这种方法的时间复杂度为O(n^2),其中n为集合的大小。```javaList
2023-08-25

redis集群客户端java实现的方法是什么

在Java中实现Redis集群客户端,可以使用Jedis Cluster库。Jedis Cluster是Jedis库的扩展,专门用于与Redis集群进行交互。以下是使用Jedis Cluster实现Redis集群客户端的步骤:1. 添加Je
2023-09-16

Java实现替换集合中的元素的方法详解

本文提供了五种方法来实现Java集合中元素的替换:set()用于直接替换特定索引处的元素。replace()根据谓词函数替换特定元素。replaceAll()逐个替换所有元素。Collections.replaceAll()替换与指定值匹配的所有元素。Stream.map()通过流处理逐个替换元素,允许进一步转换。选择合适的方法取决于集合类型、元素数量和所需的灵活性。
Java实现替换集合中的元素的方法详解
2024-04-02

redis集群客户端java实现的方法是什么

Redis集群客户端Java实现本文介绍了如何在Java中实现Redis集群客户端,包括主流库的选择、配置和使用。主流库有jedis-cluster、lettuce-cluster和redisson-cluster。配置涉及导入依赖、创建连接、设置集群节点和超时。使用客户端库时,可以读写数据、进行哈希、列表和集合操作,还可使用管道操作优化性能。最佳实践包括连接池、线程安全、性能优化和监控。
redis集群客户端java实现的方法是什么
2024-04-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录