[List] 1.单值不可变List 2.排序 3.Array和List互转 4.差集 5.带泛型的空List做返回值 6.addAll 7.逆序

本文主要是介绍[List] 1.单值不可变List 2.排序 3.Array和List互转 4.差集 5.带泛型的空List做返回值 6.addAll 7.逆序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1)Collections.singletonList(x) // 只有1个值的不可变List,修改将抛出异常

package org.example.testSingletonList;import com.google.common.collect.Lists;import java.util.Collections;
import java.util.List;public class Main {public static void main(String[] args) {// 可变的listList<Integer> list = Lists.newArrayList(1, 2, 3);// 不可变,修改将会抛出异常,且是这个列表只有一个值List<Integer> list1 = Collections.singletonList(1);list1.add(1);}
}/*
Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.base/java.util.AbstractList.add(AbstractList.java:153)at java.base/java.util.AbstractList.add(AbstractList.java:111)at org.example.testSingletonList.Main.main(Main.java:12)*/

2)对list指定排序规则

Collections.sort(list, (v1, v2)->{...})

3)List和Array互转

List转Array

package org.example.intArrToList;import java.util.Arrays;
import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Integer[] arr = list.toArray(new Integer[0]);for (int n : arr) {System.out.print(n + " ");}}
}/*
1 2 3 4 5 */

 Array转List // Arrays.stream(xx).boxed(), 因为策划的配置是数组需要转下

public class Main {public static void main(String[] args) {int[] arr = new int[]{1, 2, 3, 4, 5};// 这样子转List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());System.out.println(list);}
}/*
[1, 2, 3, 4, 5]*/

4)removeAll实现2个List的差集(注意一定要用guava的,用Arrays.asList 会有异常)

package org.example;import com.google.common.collect.Lists;import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;/*** @author jianan* @date 2021/7/8 12:13:05*/
public class TestArrayList {public static void main(String[] args) {List<Integer> list = Lists.newArrayList(1, 2, 3);System.out.println(list);List<Integer> list2 = Lists.newArrayList(1, 2, 3);list2.removeAll(list);System.out.println(list2);}
}/*
[1, 2, 3]
[]*/

5.带有泛型的List函数返回值  // 其实我更倾向于Lists.newArrayList()了

return Collections.emptyList();而不要写: return Lists.newArrayList(); 之类的写法了

6.addAll() 实现 一个List直接初始化另外一个List

/*** @author jianan* @date 2021/6/9 12:01:39*/
public class TestList {public static void main(String[] args) {ArrayList<Integer> arr = Lists.newArrayList();arr.add(1);arr.add(2);// 子数组ArrayList<Integer> arr1 = Lists.newArrayList();arr1.add(3);arr1.add(4);// endarr.addAll(arr1);System.out.println(arr);}
}/*
[1, 2, 3, 4]*/

7)Comparator.comparingInt(e -> (int) e).reversed() // 主要对一个类排序,逆序

package org.example.basic;import com.google.common.collect.Lists;import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;public class TestReadOnlyList {public static void main(String[] args) {List<Integer> list = Lists.newArrayList(1, 4, 3, 2, 5, 6, 2);list = list.stream().sorted(Comparator.comparingInt(e -> (int) e).reversed()).collect(Collectors.toList());System.out.println(list);}
}/*
[6, 5, 4, 3, 2, 2, 1]*/

这篇关于[List] 1.单值不可变List 2.排序 3.Array和List互转 4.差集 5.带泛型的空List做返回值 6.addAll 7.逆序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856054

相关文章

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的