java日常开发中常用的集合工具类方法归总(java8 stream)

news2024/9/22 5:35:18
1、创建map集合的方式

方式1:

Map<String, Object> map = new HashMap<>();
map.put("a", "test");
map.put("b", "since");

方式2:

Map<String, Object> map2 = new HashMap<>() {{
       put("c", "driver");
       put("d", "carer");
}};

方式3:

 Map<String, Object> map3 = Maps.newHashMap();
 map3.put("e", "desk");
 map3.put("f", "book");

方法4:创建空map

        java.util.Collections.emptyMap();

方法5 使用Guava库的ImmutableMap(不可变)

 Map immutableMap = ImmutableMap.of("a", 1, "b", 2, "c", 3);

方法6 使用Builder模式来创建更复杂的不可变Map

 Map<String,Integer> immutableMapUsingBuilder = ImmutableMap.<String,Integer>builder()
                .put("a", 1)
                .put("b", 4)
                .build();

方法7:java9及以后的创建方式

Map java9ImmutableMap = Map.of("a", 1, "b", 2, "c", 3);

// 或者
Map java9MapOfEntries = Map.ofEntries(
                Map.entry("a", 1),
                Map.entry("b", 2),
                Map.entry("c", 3)
        );

 方法8:Collections.singletonMap

 Map<String, String> map = Collections.singletonMap("key1", "value1");
2、创建list集合的方式

方式1:

  List<String> list1 = new ArrayList<>();
  list1.add("ele1");
  list1.add("ele2");

方式2:

List<String> list2 = Lists.newArrayList();

方式3:

List<String> list3 = Lists.newArrayList("test1", "test2", "test3");

方式4:

Arrays.asList("a1", "a2", "a3");

方式5:创建空list集合

List emptyList = java.util.Collections.emptyList();

方式6:通过stream创建

List streamList = Stream.of("a", "b", "c").collect(Collectors.toList());

方式7:不可变list

ImmutableList<String> list = ImmutableList.of("a", "b", "c", "d");

 方式8:Collections.singletonList

List<String> list = Collections.singletonList("test");
3、map集合常用操作

判断map集合是否为空;获取所有键、所有值、获取值根据键的信息

Map<String, String> map = ImmutableMap.of("key1", "浙江省", "key2", "江苏省", "key3", "河南省");
        // 判断Map是否为空方法
        boolean result1 = MapUtils.isEmpty(map);
        boolean result2 = CollectionUtils.isEmpty(map);
        // 获取Map中的所有键
        Set<String> keys = map.keySet();
        // 获取Map中的所有值
        Collection<String> values = map.values();
        // 获取Map中的所有键值对
        Set<Map.Entry<String, String>> entries = map.entrySet();
        // 根据键获取值,如果不存在则返回null
        String province1 = map.getOrDefault("key1","无省份信息"); // 浙江省
        String province2 = map.getOrDefault("key4","无省份信息"); // 无省份信息
4、java8 stream常用的一些方法归总

方法1:Collectors.toMap;该方法是将数据转换为map对象,map对象的key要唯一,如果转换之前key有可能存在的话通过(k1,k2)->k1来决定取哪一个key,否则的话会报错

方法2:Collectors.groupingBy 分组的意思,按照某个字段进行分组,我按照省份进行分组,分组后的数据浙江省的有两条,河南省的有一条


方法3:对list集合判断是否为空然后进行stream操作

List<String> collect = Optional.ofNullable(userList).orElse(Collections.emptyList()).stream().map(User::getName)
                .collect(Collectors.toList());

以上总结均为日常开发中高频使用到的,后续有其他方法会进行不断补充。欢迎大家留言补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1926359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

事务ACID四大特性(图文详解~)

ACID ACID 是数据库管理系统中保证事务正确执行的四大特性的缩写。 1. Atomicity&#xff08;原子性&#xff09;&#xff1a; 原子性指事务是不可分割的单位&#xff0c;要么全部执行成功&#xff0c;要么全部失败回滚。—All or nothing. 通常使用日志记录机制来启动回滚功…

昇思25天学习打卡营第21天|CycleGAN 图像风格迁移互换

今天是参加昇思25天学习打卡营的第21天&#xff0c;今天打卡的课程是“CycleGAN 图像风格迁移互换”&#xff0c;这里做一个简单的分享。 1.简介 从今天开始到第25天的学习内容都是生成式网络的内容。今天要学习的第一个生成式网络是CycleGAN&#xff0c;目标是实现图像风格迁…

苹果将在2025年春季通过iOS更新大幅提升Siri的智能|TodayAI

据彭博社&#xff08;Bloomberg&#xff09;最新报道&#xff0c;苹果公司&#xff08;Apple&#xff09;计划在2025年春季推出其最新的Apple Intelligence AI系统&#xff0c;通过iOS 18.4版本更新为广大iPhone用户带来更智能的Siri。这一消息由科技行业知名记者马克古尔曼在其…

【从0到1进阶Redis】主从复制

1、概念 主从复制&#xff0c;是指将一个台 Redis 服务器的数据&#xff0c;复制到其他的 Redis 服务器。前者称为主节点&#xff08;master/leader&#xff09;&#xff0c;后者称为从节点&#xff08;slave/follower&#xff09;&#xff1b;数据的复制是单向的&#xff0c;…

计算机网络生成树协议介绍与实践

生成树协议 1.环路 二层环路&#xff1a;数据链路层&#xff0c;交换机&#xff08;二层设备&#xff09;通过线路连接环状。即物理成环并且没有开启防环协议。 危害&#xff1a;广播风暴&#xff1a;交换机将未知帧广播&#xff0c;收到后的交换机继续广播&#xff0c;不断…

C语言--递归

曾经有一个段子&#xff1a;上大学时&#xff0c;我们的c语言老师说&#xff1a;学c时&#xff0c;如果有50%的同学死在了循环上面&#xff0c;那么就有90%的同学死在了递归上面。接下来&#xff0c;就来看看递归是怎么个事&#xff1f; 一.递归的介绍 递归是指一个函数直接或…

CV09_深度学习模块之间的缝合教学(4)--调参

深度学习就像炼丹。炉子就是模型&#xff0c;火候就是那些参数&#xff0c;材料就是数据集。 1.1 参数有哪些 调参调参&#xff0c;参数到底是哪些参数&#xff1f; 1.网络相关的参数&#xff1a;&#xff08;1&#xff09;神经网络网络层 &#xff08;2&#xff09;隐藏层…

偶数位的数c++

题目描述 给你两个整数 l,r&#xff0c;求 l∼r 范围内有多少个位数为偶数的数。 输入 一行两个整数 l,r。 输出 输出位数为偶数的数的数量。 样例输入 5 15样例输出 6 提示 样例解释 10,11,12,13,14,15 位数为偶数&#xff0c;都是两位数。 数据规模与约定 对于 1…

过滤器、监听器、拦截器

目录 一、 主要内容 二、 过滤器 2.1 介绍 2.2 实现 MyFilter01 MyFilter02 MyServlet01 MyServlet02 2.3 说明 2.4 执行顺序 1. 使用 web.xml 2. 使用注解和Order 3. 使用FilterRegistrationBean 2.5字符乱码 三、监听器 3.1介绍 3.2实现 3.3在线人数统计 O…

克洛托光电再度合作福晶科技,高精度光学镜头装调仪正式交付

近日&#xff0c;苏州东方克洛托光电技术有限公司&#xff08;下称“克洛托光电”&#xff09;高精度光学镜头装调仪正式交付于福建福晶科技股份有限公司&#xff0c;研发人员在现场完成设备安装调试并介绍使用方法。据悉&#xff0c;这已是双方第二次展开合作。 前沿产品力助推…

企业知识库用不起来?试一下用HelpLook同步钉钉组织架构

提升企业管理和协同效率已成为增强竞争力的关键。企业通过知识管理&#xff0c;搭建内部知识库&#xff0c;将分散的经验和知识转化为系统化流程&#xff0c;减少重复解释&#xff0c;促进业务高效运作。这为企业提供了坚实的基础。 企业知识库面临的挑战 尽管传统知识库内容丰…

银河麒麟高级服务器操作系统V10加固操作指南

1:检查系统openssh安全配置: 2:检查是否设置口令过期前警告天数: 3:检查账户认证失败次数限制: 修改/etc/pam.d/system-auth文件中deny的参数即可 4:检查是否配置SSH方式账户认证失败次数限制:

github相关命令

如果我们要从 GitHub 上拉取一个项目到本地&#xff0c;进行修改并上传回去&#xff0c;通常需要以下步骤&#xff1a; 1. 克隆远程仓库到本地 使用 git clone 命令将 GitHub 上的项目克隆到本地&#xff1a; (网址示例如下所示&#xff09; git clone https://github.com/你的…

多旋翼无人机挂载多功能抛投器技术详解

多旋翼无人机&#xff0c;作为一种具有高效、灵活、稳定等特性的无人驾驶飞行器&#xff0c;在现代社会的多个领域得到了广泛应用。其中&#xff0c;挂载多功能抛投器技术&#xff0c;使得无人机在物资投送、救援等任务中发挥出更加重要的作用。以下将详细介绍多旋翼无人机挂载…

正则表达式怎么控制匹配的字符串更近的一个

http((?!http).)*m3u8 正则表达式怎么控制匹配的字符串更近的一个 正则如何匹配最近的字符 正则如何匹配最近的两个字符 怎么控制只要离字符串b匹配更近一点的字符串a 解释 a.b&#xff0c;它将会匹配最长的以a开始&#xff0c;以b结束的字符串 a.?b匹配最短的&#xff…

测试开发面经总结(三)

TCP三次握手 TCP 是面向连接的协议&#xff0c;所以使用 TCP 前必须先建立连接&#xff0c;而建立连接是通过三次握手来进行的。 一开始&#xff0c;客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口&#xff0c;处于 LISTEN 状态 客户端会随机初始化序号&…

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…

数仓工具—Hive语法之排除特定列

排除特定列 Apache Hive是一个基于Hadoop HDFS的数据仓库框架,用于存储和分析大量数据。Apache Hive支持大多数关系数据库功能,如对大型表进行分区和根据分区列存储值。 在本文中,我们将检查从SELECT查询中排除Hive分区列的方法。 这个在我们需要表中大量列的时候,例如一…

【python】OpenCV—European Article Number

参考学习来自&#xff1a;OpenCV基础&#xff08;25&#xff09;条码和二维码扫的生成与识别 1 条形码介绍 EAN-13是欧洲物品编码&#xff08;European Article Number&#xff09;的缩写&#xff0c;是一种广泛使用的条形码标准&#xff0c;特别是在超级市场和其它零售业中。…

第二周周日学习总结

题目总结 1. 给你一个仅由数字组成的字符串 s&#xff0c;在最多交换一次 相邻 且具有相同 奇偶性 的数字后&#xff0c;返回可以得到的 字典序最小的字符串 。 如果两个数字都是奇数或都是偶数&#xff0c;则它们具有相同的奇偶性。例如&#xff0c;5 和 9、2 和 4 奇偶性…