[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

相关文章

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

java streamfilter list 过滤的实现

《javastreamfilterlist过滤的实现》JavaStreamAPI中的filter方法是过滤List集合中元素的一个强大工具,可以轻松地根据自定义条件筛选出符合要求的元素,本文就来... 目录1. 创建一个示例List2. 使用Stream的filter方法进行过滤3. 自定义过滤条件1. 定

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

java两个List的交集,并集方式

《java两个List的交集,并集方式》文章主要介绍了Java中两个List的交集和并集的处理方法,推荐使用Apache的CollectionUtils工具类,因为它简单且不会改变原有集合,同时,文章... 目录Java两个List的交集,并集方法一方法二方法三总结java两个List的交集,并集方法一

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri