【积累】list

List

  1. 一个list转为二维数组,五个一组
List<List<String>> lists = Lists.partition(list,5);
  1. 删除list中的元素 删除下标以及定位到遍历的位置
for(int i = 0, len = list.size(); i < len; i++){  if(list.get(i) == 1){  list.remove(i);  len--;i--;}  
}

参考:删除list元素
3. List转数组

// 要转换的list集合
List<String> testList = new ArrayList<String>(){{add("aa");add("bb");add("cc")}}// 使用toArray(T[] a)方法
String[] array2 = testList.toArray(new Strinng[testList.size()]);

java List和数组相互转换方法
4. List对象类型转换

List<Response1> collect = response2List.stream().map(item -> ConvertHelper.convert(item, Response1.class)).collect(Collectors.toList());
  1. List和List相互转换
// string转long
List<Long> longList = stringList.stream.map(Long::valueOf).collect(Collectors.toList());
// long转string
List<String> stringList = longList.stream.map(String::valueOf).collect(Collectors.toList());
  1. list取其中一个字段组成List
List<Long> numberList = list.stream().map(Response::getOrgId).collect(Collectors.toList());
  1. List取差集
allDataList.removeAll(removeDataList);
  1. 多个List取交集
List<Integer> A = new ArrayList<>(Arrays.asList(1,2,5,8));
List<Integer> B = new ArrayList<>(Arrays.asList(5,7,8,9));
List<Integer> C = new ArrayList<>(Arrays.asList(5,8,9));
List<List<Integer>> D = new ArrayList<>();
D.add(A);
D.add(B);
D.add(C);
List<Integer> E = D.get(0);
D.forEach(integers ->{E.retailAll(integers);
});// E就是最后的交集结果
  1. 在list后追加list / 在list中添加list
list1.addAll(list2);
  1. list的两种分组方式
    假设有个student类,有id、name、score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组
    10.1 java8之前list分组
public Map<String, List<Student>> groupList(List<Student> students) {Map<String, List<Student>> map = new Hash<>();for (Student student : students) {List<Student> tmpList = map.get(student.getName());if (tmpList == null) {tmpList = new ArrayList<>();tmpList.add(student);map.put(student.getName(), tmpList);} else {tmpList.add(student);}}return map;
}

10.2 java8的list分组
List转map

public Map<String, List<Student>> groupList(List<Student> students) {Map<String, List<Student>> map = students.stream().collect(Collectors.groupingBy(Student::getName));return map;
}
  1. 查看list中是否有重复值
    11.1 将list转为set,通过两个集合的size大小是否相等来判断有无重复元素
public static void main(String[] args) {List<String> stringList=new ArrayList<>(Arrays.asList("a","a","b","c"));Set<String> stringSet=new HashSet<>(stringList);if (stringList.size() == stringSet.size()) {System.out.println("没有重复元素");} else {System.out.println("有重复元素");}
}

11.2 使用jdk8的stream判断

public static void main(String[] args) {List<String> stringList=new ArrayList<>(Arrays.asList("a","a","b","c"));long count = stringList.stream().distinct().count();if (stringList.size() == count) {System.out.println("没有重复元素");} else {System.out.println("有重复元素");}
}

11.3 判断一个对象集合中 的某个字段是否有重复
判断Person集合中的name属性有没有重复

public static void main(String[] args) {List<Person> personList = new ArrayList<Person>(){{add(new Person("张三"));add(new Person("李四"));add(new Person("张三"));}};List<String> stringList = personList.stream().map(Person::getName).collect(Collectors.toList());long count = stringList.stream().distinct().count();if (stringList.size() == count) {System.out.println("没有重复元素");} else {System.out.println("有重复元素");}
}
  1. 判断list集合中是否包含某个元素 list.contains()
 List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");list.add("4");list.add("5");
boolean isHave = list.contains("2");
  1. list去重
// 去重并转类型
List<String> collect = longList.stream().distinct().map(String::valueOf).collect(Collectors.toList());
  1. 从List中取两个字段作为map的key和value
Map<String, Long> collect = studentList.stream().collect(Collectors.toMap(Student::getName, Student::getId));
  1. 从list中取一个字段进行分组转map 并过滤
// 并过滤名字为空的数据
HashMap<String,Student> studentMap = studentList.filter(item -> StringUtils.isNotBlank(item.getName())).collect(Collectors.groupingBy(Student::getName));
  1. list倒排序
Collections.reverse(list);

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

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

相关文章

C语言经典算法-9

文章目录 其他经典例题跳转链接46.稀疏矩阵47.多维矩阵转一维矩阵48.上三角、下三角、对称矩阵49.奇数魔方阵50.4N 魔方阵51.2(2N1) 魔方阵 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠走迷官&#xff08;一&#xff09;6.…

pytest框架的封装以及用例管理框架

pytest框架的封装以及用例管理框架 公共类统一封装requests_util02.pytest_api01.py 自动化测试的基础自动化测试的介入点自动化测试和手工测试占比自动化实施过程 pytest元素定位元素定位查找元素定位的方式通过 ID 定位通过 Name 定位通过 Class Name 定位通过 Tag Name 定位…

唯众物联网安装调试员实训平台物联网一体化教学实训室项目交付山东技师学院

近日&#xff0c;山东技师学院物联网安装调试员实训平台及物联网一体化教学实训室采购项目已顺利完成交付并投入使用&#xff0c;标志着学院在物联网技术教学与实践应用方面迈出了坚实的一步。 山东技师学院作为国内知名的技师培养摇篮&#xff0c;一直以来致力于为社会培养高…

windows11 openssh服务开启;第三方ping不通局域网windows电脑;ssh连接内部ubuntu系统

参考&#xff1a;https://blog.csdn.net/2301_77554343/article/details/134328867 1、windows11 openssh开启 1&#xff09;我这边可选功能在设置-系统里面&#xff1b;其他网上看在应用下&#xff1b;添加可选openssh服务器安装 2&#xff09;安装后打开&#xff0c;管理员…

光伏户用开发技巧

一、开发户用光伏的技巧有哪些&#xff1f; 1.项目可行性分析 电站开发前需要先进行可行性分析&#xff0c;从当地的气象条件、电网的接入能力、政策环境等方便分析。可以自行收集数据分析&#xff0c;也可以邀请专业机构进行评估。 2.选址和电站设计 光伏电站的选址&#…

agent利用知识来做规划:《KnowAgent: Knowledge-Augmented Planning for LLM-Based Agents》笔记

文章目录 简介KnowAgent思路准备知识Action Knowledge的定义Planning Path Generation with Action KnowledgePlanning Path Refinement via Knowledgeable Self-LearningKnowAgent的实验结果 总结参考资料 简介 《KnowAgent: Knowledge-Augmented Planning for LLM-Based Age…

Leetcode 3093. Longest Common Suffix Queries

Leetcode 3093. Longest Common Suffix Queries 1. 解题思路2. 代码实现 题目链接&#xff1a;3093. Longest Common Suffix Queries 1. 解题思路 这一题的话思路上其实就是一个Trie树的变体。 对于每一个wordsQuery当中的word&#xff0c;我们要在wordsContainer当中获取答…

Redis 教程系列之Redis 简介(一)

Redis&#xff1a; Remote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value…

Spring Cloud四:微服务治理与安全

Spring Cloud一&#xff1a;Spring Cloud 简介 Spring Cloud二&#xff1a;核心组件解析 Spring Cloud三&#xff1a;API网关深入探索与实战应用 文章目录 一、服务注册中心的选型与最佳实践1. 主流服务注册中心概述2. 最佳实践建议(1)、选型建议(2)、高可用性与稳定性1). 高可…

Linux安装iptables 防火墙

安装iptables Ubuntu&#xff1a; sudo apt-get update sudo apt-get install iptables Centos&#xff1a; sudo yum install iptables 开启&#xff1a;service iptables start 关闭&#xff1a;service iptables stop dpkg -l | grep iptables --查看iptables 是否安装

北京密云广电许可证办理要求与流程

北京密云广电许可证办理攻略&#xff1a;要求与流程全解析 一、引言 各位老板好&#xff0c;我是经典世纪胡云帅&#xff0c;随着广播电视行业的快速发展&#xff0c;越来越多的企业和个人希望进入这一领域&#xff0c;开展节目制作、传播等业务。而在北京密云&#xff0c;这一…

二进制王国(蓝桥杯备赛)【sort/cmp的灵活应用】

二进制王国 题目链接 https://www.lanqiao.cn/problems/17035/learning/?contest_id177 题目描述 思路 这里就要灵活理解字典序排列&#xff0c;虽然string内置可以直接比较字符串字典序&#xff0c;但是在拼接时比较特殊&#xff0c;比如 11的字典序小于110&#xff0c;但…

HTTP --- 下

目录 1. HTTP请求方式 1.1. HTML 表单 1.2. GET && POST方法 1.2.1. 用 GET 方法提交表单数据 1.2.2. 用 POST 方法提交表单数据 1.2.3. 总结 1.3. 其他方法 2. HTTP的状态码 2.1. 重定向 2.1.1. 临时重定向 && 永久重定向 2.1.2. 302 &&…

【Vue3笔记02】Vue3项目工程中使用axios网络请求库实现前后端数据通信

这篇文章,主要介绍Vue3项目工程中如何使用axios网络请求库实现前后端数据通信【知识星球】。 目录 一、axios依赖 1.1、下载axios依赖 1.2、创建axios工具类

【MySQL系列】Public Key Retrieval is not allowed

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Python灰帽子网络安全实践

教程介绍 旨在降低网络防范黑客的入门门槛&#xff0c;适合所有中小企业和传统企业。罗列常见的攻击手段和防范方法&#xff0c;让网站管理人员都具备基本的保护能力。Python 编程的简单实现&#xff0c;让网络运维变得更简单。各种黑客工具的理论和原理解剖&#xff0c;让人知…

c++结束输入

在C语言中&#xff0c;停止输入通常意味着结束从标准输入&#xff08;通常是键盘&#xff09;读取数据的操作。这通常通过检测一个特定的输入条件来实现&#xff0c;如一个特殊的EOF&#xff08;文件结束&#xff09;标记&#xff0c;或者当读取某些特定的值时结束循环。 以下…

css与鼠标光标指针相关的属性有哪些?

CSS中与鼠标光标相关的属性以下几个&#xff1a; cursor: 设置鼠标光标的样式。常见的取值有&#xff1a; auto&#xff1a;浏览器自动决定光标样式。pointer&#xff1a;手型光标&#xff0c;表示链接可点击。default&#xff1a;默认光标样式。text&#xff1a;文本光标&…

Acwing算法提高课-DP-数字三角形模型

摘花生 见另一篇文章&#xff1a; Acwing数学与简单DP&#xff08;二&#xff09; 最低通行费 原题链接&#xff1a;https://www.acwing.com/problem/content/1020/ 类似于上面的摘花生&#xff0c;不过摘花生求的是集合的MAX&#xff0c;最低通行费求的是集合的MIN。 但是&am…

基于Matlab的眼底图像血管分割,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…