Java将List<List<T>> 转换为数组

本文介绍了如何在Java中将List<List<String>>转换为String二维数组,强调了不能直接使用泛型转换的原因,并提供了一种可靠的方法。通过遍历外层List,对每个内层List调用toArray()方法,然后将结果存储到预先创建的二维数组中。这种方法确保了转换的正确性。
摘要由CSDN通过智能技术生成

Java将List<List<T>>转换为数组

首先是不能使用泛型的强制转换,比如这样:String[][] strings = ans.toArray(ss);,虽然可以通过编译,但是运行会出错;原因在于泛型转换是有条件的,不能从toArray得到的Object对象直接转换到String,经过多次测试下面这个方法比较靠谱

  • 例子(简单易懂)
	// 将ans转变为[][]
	List<List<String>> ans = new ArrayList<>();
	String [][] ss = new String[ans.size()][];
	int i = 0;
	for (List<String> mm : ans){
	    ss[i] = mm.toArray(new String[mm.size()]);
	    i++;
	}
  • 代码讲解:
  1. 先创建二维的数组,然后定义二维数组的初始长度,也就是最外层list的大小,因此有:
List<List<String>> list_list_String = new ArrayList<>();
String [][] array_of_String = new String [list_list_String.size()][];
  1. 随后是将list_list_String中的每一个List<String>展开处理 ,每一个List都使用toArray进行处理
int i = 0;
for (List<String> list_String : list_list_String){
	array_of_String[i] = list_String.toArray(new String[list_String.size()]);
	i++;
}
  1. 其实后面的展开处理可以简单一点:将list_String.toArray(new String[list_String.size()])写为list_String.toArray(new String[0])也是没问题的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值