数组,集合流式互转

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

相关文章

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,访问元

Java 8 Stream filter流式过滤器详解

《Java8Streamfilter流式过滤器详解》本文介绍了Java8的StreamAPI中的filter方法,展示了如何使用lambda表达式根据条件过滤流式数据,通过实际代码示例,展示了f... 目录引言 一.Java 8 Stream 的过滤器(filter)二.Java 8 的 filter、fi

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没