数组,集合流式互转

2024-09-01 06:44
文章标签 数组 集合 互转 流式

本文主要是介绍数组,集合流式互转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Java中,数组和集合(ListMapSet)之间可以通过流(Stream)进行相互转换。下面列举一些常见的转换操作示例。

基本流程:(过滤器可无,必需的是转stream和收集器)
集合对象.stream().filter(lambda return boolean).collect(  Collectors.to你要的集合() );

如果转map的话要传lambda,指定什么当key什么当value

数组的话要用工具类转stream

Arrays.stream(  你的数组 ).filter(lambda return boolean).boxed().collect(  Collectors.to你要的集合() );

1. 数组转List

import java.util.Arrays;
import java.util.List;public class ArrayToList {public static void main(String[] args) {String[] array = {"apple", "banana", "cherry"};// 数组转 ListList<String> list = Arrays.stream(array).toList(); // Java 16+ 提供的简洁方法// 或者使用// List<String> list = Arrays.asList(array);System.out.println(list);}
}

2. 数组转Set

import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;public class ArrayToSet {public static void main(String[] args) {String[] array = {"apple", "banana", "cherry"};// 数组转 SetSet<String> set = Arrays.stream(array).collect(Collectors.toSet());System.out.println(set);}
}

3. 数组转Map

假设数组中的元素是String类型,可以将其转换为键值对,例如使用字符串的长度作为值:

import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;public class ArrayToMap {public static void main(String[] args) {String[] array = {"apple", "banana", "cherry"};// 数组转 Map,键为字符串,值为字符串长度Map<String, Integer> map = Arrays.stream(array).collect(Collectors.toMap(str -> str, str -> str.length()));System.out.println(map);}
}

4. List转数组

import java.util.Arrays;
import java.util.List;public class ListToArray {public static void main(String[] args) {List<String> list = Arrays.asList("apple", "banana", "cherry");// List 转数组String[] array = list.stream().toArray(String[]::new);System.out.println(Arrays.toString(array));}
}

5. Set转数组

import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;public class SetToArray {public static void main(String[] args) {Set<String> set = new HashSet<>(Arrays.asList("apple", "banana", "cherry"));// Set 转数组String[] array = set.stream().toArray(String[]::new);System.out.println(Arrays.toString(array));}
}

6. ListSet

import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;public class ListToSet {public static void main(String[] args) {List<String> list = Arrays.asList("apple", "banana", "cherry", "apple");// List 转 SetSet<String> set = list.stream().collect(Collectors.toSet());System.out.println(set);}
}

7. SetList

import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Arrays;public class SetToList {public static void main(String[] args) {Set<String> set = new HashSet<>(Arrays.asList("apple", "banana", "cherry"));// Set 转 ListList<String> list = set.stream().collect(Collectors.toList());System.out.println(list);}
}

8. MapList(键或值)

Map中的键或值转换为List

import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;public class MapToList {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(1, "apple");map.put(2, "banana");map.put(3, "cherry");// Map 键转 ListList<Integer> keysList = map.keySet().stream().collect(Collectors.toList());// Map 值转 ListList<String> valuesList = map.values().stream().collect(Collectors.toList());System.out.println("Keys: " + keysList);System.out.println("Values: " + valuesList);}
}

9. MapSet(键或值)

Map中的键或值转换为Set

import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.stream.Collectors;public class MapToSet {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(1, "apple");map.put(2, "banana");map.put(3, "cherry");// Map 键转 SetSet<Integer> keysSet = map.keySet().stream().collect(Collectors.toSet());// Map 值转 SetSet<String> valuesSet = map.values().stream().collect(Collectors.toSet());System.out.println("Keys: " + keysSet);System.out.println("Values: " + valuesSet);}
}

10. Map转数组(键或值)

Map中的键或值转换为数组:

import java.util.Map;
import java.util.HashMap;
import java.util.Arrays;public class MapToArray {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(1, "apple");map.put(2, "banana");map.put(3, "cherry");// Map 键转数组Integer[] keysArray = map.keySet().stream().toArray(Integer[]::new);// Map 值转数组String[] valuesArray = map.values().stream().toArray(String[]::new);System.out.println("Keys: " + Arrays.toString(keysArray));System.out.println("Values: " + Arrays.toString(valuesArray));}
}

这篇关于数组,集合流式互转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

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

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

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Java集合中的List超详细讲解

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