[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

相关文章

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

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

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

使用Python实现PDF与SVG互转

《使用Python实现PDF与SVG互转》SVG(可缩放矢量图形)和PDF(便携式文档格式)是两种常见且广泛使用的文件格式,本文将详细介绍如何使用Python实现SVG和PDF之间的相互转... 目录使用工具使用python将SVG转换为PDF使用Python将SVG添加到现有PDF中使用Python将PD

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Python中lambda排序的六种方法

《Python中lambda排序的六种方法》本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1.对单个变量进行排序2. 对多个变量进行排序3. 降序排列4. 单独降序1.对单个变量进行排序

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象