java List与array互相转换

本文提供了一个简单的 Java 示例,展示了如何将 List<String> 转换为 String[] 数组,并通过两个不同方法进行了演示。

叔叔不说  不解释 不约,直接上代码

package cn.kge.one;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Demo1 {
    public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		list.add("e");
		String[] strArray = list.toArray(new String[list.size()]);
		for(String str:strArray){
			System.out.println(str);
		}
		System.out.println("-------------------优美的分割线------------------");
		String[] strings = {"1","2","3","4"};  
        List<String> content = Arrays.asList(strings);
        
        for(String str:content){
        	System.out.println(str);
        }
	}
}


Java中,`List` 是一种常用的集合类型,经常需要将其转换为其他数据结构,例如数组、`Map` 或其他类型的 `List`。以下是几种常见的 `List` 转换方法: ### List 数组 可以通过 `List.toArray()` 方法将 `List` 转换为数组。例如,将 `List<String>` 转换为 `String[]`: ```java List<String> list = new ArrayList<>(); String[] array = list.toArray(new String[0]); ``` 这种方法适用于任何类型的 `List`,只需传入适当类型的数组作为参数即可 [^2]。 ### 数组 List 使用 `Arrays.asList()` 可以将数组转换为 `List`: ```java String[] array = {"a", "b", "c"}; List<String> list = Arrays.asList(array); ``` 需要注意的是,`Arrays.asList()` 返回的 `List` 是固定大小的,不能进行添加或删除操作。 ### List Map 当需要将 `List` 转换为 `Map` 时,可以使用循环遍历或 Java 8 的 Stream API。例如,将 `List<User>` 转换为 `Map<Long, User>`: ```java List<User> userList = // 获取用户列表 Map<Long, User> userMap = new HashMap<>(); for (User user : userList) { userMap.put(user.getId(), user); } ``` 或者使用 Stream API: ```java Map<Long, User> userMap = userList.stream() .collect(Collectors.toMap(User::getId, user -> user)); ``` 这种方法适用于需要根据某个字段作为键的情况 [^3]。 ### Map List 将 `Map` 转换为 `List` 时,可以使用 `Map.values()` 或 `Map.entrySet()`: ```java Map<Long, User> userMap = // 获取用户Map List<User> userList = new ArrayList<>(userMap.values()); ``` 或者遍历 `entrySet`: ```java List<User> userList = new ArrayList<>(); for (Map.Entry<Long, User> entry : userMap.entrySet()) { userList.add(entry.getValue()); } ``` 这种方法适用于需要提取 `Map` 中的值或键值对的情况 。 ### 自定义 List 转换 如果需要将 `List` 转换为其他类型的 `List`,可以使用 `Stream` 或 `Collections.addAll()` 方法。例如,将 `List<String>` 转换为 `List<Integer>`: ```java List<String> stringList = Arrays.asList("1", "2", "3"); List<Integer> integerList = stringList.stream() .map(Integer::valueOf) .collect(Collectors.toList()); ``` 这种方法适用于需要对 `List` 中的元素进行类型转换的情况。 ### 使用 Collections.addAll() 还可以使用 `Collections.addAll()` 将数组转换为 `List`: ```java String[] array = {"a", "b", "c"}; List<String> list = new ArrayList<>(); Collections.addAll(list, array); ``` 这种方法适用于需要将数组添加到已有的 `List` 中的情况。 ### 使用 Java 8 Stream API Java 8 提供了强大的 Stream API,可以用于处理和转换 `List`。例如,过滤、映射和收集操作: ```java List<String> filteredList = originalList.stream() .filter(s -> s.startsWith("A")) .collect(Collectors.toList()); ``` 这种方法适用于需要对 `List` 进行复杂的处理和转换的情况。 ### 使用第三方库 除了 Java 标准库外,还可以使用第三方库如 Apache Commons Collections 或 Guava 来简化 `List` 的转换操作。例如,使用 `Lists.newArrayList()`: ```java List<String> list = Lists.newArrayList("a", "b", "c"); ``` 这种方法适用于需要简化代码和提高可读性的情况。 ### 总结 以上方法涵盖了 `List` 到数组、`Map`、其他类型的 `List` 以及使用 Stream API 和第三方库的常见转换方法。根据具体需求选择合适的方法可以提高代码的效率和可维护性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值