数组,集合流式互转

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

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

MyBatis流式查询两种实现方式

《MyBatis流式查询两种实现方式》本文详解MyBatis流式查询,通过ResultHandler和Cursor实现边读边处理,避免内存溢出,ResultHandler逐条回调,Cursor支持迭代... 目录MyBATis 流式查询详解:ResultHandler 与 Cursor1. 什么是流式查询?

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

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

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