数组,集合流式互转

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数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及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、测试数据

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

Java数组初始化的五种方式

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