首页 > 编程语言 >Java 高效获取两个List中不同的元素集合

Java 高效获取两个List中不同的元素集合

时间:2024-05-13 10:56:00浏览次数:17  
标签:map 高效 Java differList 元素 List 集合 strB

/**
* 借助Map来获取listA、listB的不同元素集合
*
* @param listA 集合A
* @param listB 集合B
* @return list<String> 不同元素集合
*/
public static List<String> getDifferListByMap(List<String> listA, List<String> listB) {
List<String> differList = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
long beginTime = System.currentTimeMillis();
for (String strA : listA) {
map.put(strA, 1);
}
for (String strB : listB) {
Integer value = map.get(strB);
if (value != null) {
map.put(strB, ++value);
continue;
}
map.put(strB, 1);
}

for (Map.Entry<String, Integer> entry : map.entrySet()) {
//获取不同元素集合
if (entry.getValue() == 1) {
differList.add(entry.getKey());
}
}
long endTime = System.currentTimeMillis();
System.out.println("集合A和集合B不同的元素:"+differList);
return differList;
}


参考:
Java高效找出两个大数据量List集合中的不同元素-阿里云开发者社区 (aliyun.com)

标签:map,高效,Java,differList,元素,List,集合,strB
From: https://www.cnblogs.com/Lee597/p/18188777

相关文章

  • 【问题解决】java.lang.NoSuchMethodError错误
    问题现象近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下:A类提供了setJumpType(Stringtype),B类调用A类的setJumpType(Stringtype)报错java.lang.NoSuchMethodError:com.xxx.A.setJumpType(Ljava/lang/String;)V在之前的发版的程序中,B......
  • 完全开源可商用!一个简洁、高效、安全的快速开发平台!
    大家好,我是Java陈序员。问君能有几多愁,开源项目解千愁!今天,给大家介绍一个快速开发平台,完全开源可商用!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍SmartAdmin——一个简洁、高效、安全的快速开发平台,以高质量代码......
  • 干了 2 年多 Java 外包,终于脱离了!
    大家好,我是R哥。金三银四结束了,上个月分享了一个35K入职的面试辅导案例:35K*14薪入职了,这公司只要不裁员,我能一直呆下去。。今天再分享一个上个月让人很有成就感的面试辅导case:外包、空窗四个月、薪资10k、996——>甲方公司、薪资15k、早九晚六(WLB),从报名面试辅导后,从......
  • 高效快速 推荐这款服务器同步软件!
    服务器数据同步是为了确保在不同的服务器或数据中心之间能够保持数据的一致性和可用性,选择一款合适的服务器同步软件,可确保数据完整性、提高服务质量和满足业务需求的重要手段。服务器数据同步的痛点主要包括:1、数据一致性:确保多个服务器之间的数据保持高度一致性是一个挑战,特......
  • 使用Lambda表达式和接口的简单Java 8 Predicate示例
    大量的Java编程涉及到对真或假值的评估,从条件语句到迭代循环。当您使用JDK的StreamsAPI和Lambda函数时,可以使用备受欢迎的JavaPredicate接口来简化布尔条件的评估。也被称为Java8Predicate(源自引入函数式编程的JDK版本),这个简单的接口定义了五个方法,尽管只有JavaPredicate的t......
  • java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBea
    简介前排提示:这个错误一般是由于Spring新版本导致的与其他框架不兼容现象,解决办法一般是升级其他框架版本。使用springboot-3.2.5和myabtis-plus-3.5.0搭建开发环境时,启动Springboot程序时报错,报错信息:点击查看代码java.lang.IllegalArgumentException:Invalidvalu......
  • 音乐格式转换:java代码实现
    1packageutil;23importws.schild.jave.*;4importjava.io.File;56/*7音乐格式转换8<dependency>9<groupId>ws.schild</groupId>10<artifactId>jave-core</artifactId>11<version>2.4.4</versi......
  • PXE高效网络装机与Kickstart无人值守安装
    PXE高效网络装机与Kickstart无人值守安装目录PXE高效网络装机与Kickstart无人值守安装一、PXE概述1、PXE(PrebooteXcutionEnvironment)的概念2、PXE批量部署的优点3、部署PXE远程安装服务4、搭建PXE远程安装服务器二、搭建PXE远程安装服务器的步骤1、安装软件2、配置DHCP3......
  • JavaScript中的 '===' 和 '=='
    在JavaScript中,== 和 === 都是用于比较值的相等性的运算符,但是它们的行为略有不同。== 运算符用于比较值的相等性,而不考虑它们的数据类型。这意味着如果两个值的值相等,即使它们的数据类型不同,它们也会被认为是相等的。例如,== 会将字符串 "123" 与数字 123 视为相等。......
  • Java面试题:线程池内“闹情绪”的线程,怎么办?
    在Java中,线程池中工作线程出现异常的时候,默认会把异常往外抛,同时这个工作线程会因为异常而销毁,我们需要自己去处理对应的异常,异常处理的方法有几种:在传递的任务中去处理异常,对于每个提交到线程池中的执行的任务,可以提前通过异常进行捕获,这样即便出现了异常,也不会影响线程池中的......