Stream流之List、Integer[]、int[]相互转化

一、int[ ]

1.1、int[ ] 转 Integer[ ]

public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
list.forEach(e -> System.out.print(e + " "));
}

Arrays.stream(arr) 将int数组转化为IntStream

bosed() 将每一个整数进行装箱,把IntStream 转换成了 Stream< Integer >

collect(Collectors.toList()) 将对象流收集为集合,转化为 List< Integer >

1.2、int[ ] 转 List< Integer >

Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new);

Arrays.stream(arr) 还是转化为流

boxed() 装箱,将基本类型流转换为对象流

toArray(Integer[ ]::new) 将对象流转换为对象数组

二、Integer[ ]

2.1、Integer[ ]转 int[ ]

 	int[] arr= Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();

mapToInt(Integer::valueOf) 将对象流转化为基本类型流

toArray() 转化为int数组*

2.2、Integer[ ]转 List< Integer >

	Integer[] integers = {1,2,3,4,5};
List<Integer> list = Arrays.asList(integers);

三、List< Integer >

3.1、List< Integer > 转 Integer[ ]

	Integer[] integers = list.toArray(new Integer[list.size()]);

3.2、List< Integer > 转 int[ ]

int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray();

// int[] 转 List

int[] data = {4, 5, 3, 6, 2, 5, 1};

List list1 = Arrays.stream(data).boxed().collect(Collectors.toList());

// Arrays.stream(arr) 可以替换成IntStream.of(arr)。

// 1.使用Arrays.stream将int[]转换成IntStream。

// 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream。

// 3.使用Stream的collect(),将Stream转换成List,因此正是List。

// int[] 转 Integer[]

Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);

// 前两步同上,此时是Stream。 // 然后使用Stream的toArray,传入IntFunction<A[]> generator。 // 这样就可以返回Integer数组。 // 不然默认是Object[]。

// List 转 Integer[]

Integer[] integers2 = list1.toArray(new Integer[0]);

// 调用toArray。传入参数T[] a。这种用法是目前推荐的。 // List转String[]也同理。

// List 转 int[]

int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();

// 想要转换成int[]类型,就得先转成IntStream。

// 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream

// 而IntStream中默认toArray()转成int[]。

// Integer[] 转 int[]

int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();

// 思路同上。先将Integer[]转成Stream,再转成IntStream。

// Integer[] 转 List

List list2 = Arrays.asList(integers1);

// 最简单的方式。String[]转List也同理。

// String[] 转 List

// 同理 String[] strings1 = {"a", "b", "c"};

List list3 = Arrays.asList(strings1);

// List 转 String[]

String[] strings2 = list3.toArray(new String[0]);

(各种数组之间的互相转换)int 数组与List互相转换,object数组转换int数组的更多相关文章

  1. C# 16进制与字符串、字节数组之间的转换(转)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ...

  2. Java 集合 集合与数组之间的转换

    Java 集合 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 ...

  3. 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换

    在项目中经常会遇到数组转集合.集合转数组.数组之间类型转换等操作 1.数组转集合 为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码: String str[] = { ...

  4. C# 16进制与字符串、字节数组之间的转换 (转载)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ...

  5. C#串口通讯,16进制与字符串、字节数组之间的转换。

    1.将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, ...

  6. c#不同数组之间的转换【转载,消化自动删除】

    c#中从string数组转换到int数组 string[] input = { "1", "2", "3", "4", ...

  7. C# 16进制与字符串、字节数组之间的转换

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToStrin ...

  8. java中 列表,集合,数组之间的转换

    java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...

  9. List集合与Array数组之间的互相转换

    1.数组转换成List集合 采用java中集合自带的asList()方法就可以完成转换了 String[] array = new String[] {"zhu", "w ...

  10. C# 16进制与字符串、字节数组之间的转换(串口通讯中)

    1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ...

随机推荐

  1. docker swarm CA证书到期

    1.现象 在portain平台查看日志,发现一些节点日志无法查看报错为:Error grabbing logs: rpc error: code = Unknown desc = warning: i ...

  2. 官方的 MCP C# SDK:csharp-sdk

    csharp-sdk 这是 Model Context Protocol(MCP)官方提供的 C# SDK,为 MCP 服务器和客户端提供简单易用的接口, 主要由微软维护.MCP 是由 Claude( ...

  3. Delphi 禁止重复运行程序的方法

    第一种方法,使用"过程调用" procedure Del; // 自定义过程 var Mutex: THandle; begin Mutex := CreateMutex(nil, ...

  4. 前端必备的 CSS 库,normalize.css

    这是一个小 CSS 样式表,是著名的库,作为 CSS 基础样式的一部分,可消除客户端渲染不一致问题. 地址是 https://necolas.github.io/normalize.css/ 别小看这 ...

  5. [每日算法 - 华为机试] leetcode345 :反转字符串中的元音字母「双指针」

    入口 力扣https://leetcode.cn/problems/reverse-vowels-of-a-string/submissions/ 题目描述 给你一个字符串 s ,仅反转字符串中的所有 ...

  6. Open R1 项目进展第一期

    DeepSeek R1 发布已经两周了,而我们启动 open-r1 项目--试图补齐它缺失的训练流程和合成数据--也才过了一周.这篇文章简单聊聊: Open-R1 在模仿 DeepSeek-R1 流程 ...

  7. [设计模式/Java] 设计模式之工厂方法模式【11】

    概述:工厂方法模式 := Factory Method Pattern 工厂模式的3种细分模式: 简单工厂模式 / 工厂方法模式 / 抽象工厂模式 工厂模式(Factory Pattern)是 Jav ...

  8. 使用Python计算汉密尔顿路径

    引言 在图论中,汉密尔顿路径(Hamiltonian Path)是一个经典问题,它在很多实际应用中都有广泛的应用,如网络路由.旅行商问题等.今天,我们将一起探讨如何使用 Python 来计算汉密尔顿路 ...

  9. 让IE6、IE7、IE8支持CSS3的圆角、阴影样式-最好的插件

    想做个页面用到css3的圆角和阴影效果,但ie浏览器不支持,之前也听说有插件可以实现,周六在网上找到了一个方法,原文如下: 但凡是前端工程师,都知道IE6,IE7,IE8不支持.或者不完全支持CSS3 ...

  10. 题解:CF1955E Long Inversions

    简单题. 考虑贪心地进行修改,每次选择字符串中最左侧第一个 000,并以该位置为左端点进行一次修改,可以发现若 lenlenlen 合法则这样一定构造出全 111 串. 然而直接暴力实现是 O(n2) ...