【发布时间】:2019-02-12 06:59:56
【问题描述】:
我想知道是否有可能通过流 API 进行转换
List<Integer> li = Arrays.asList(1,2,3,45,678);
到char[] ch 而不进入String 的中间阶段?我找不到。
【问题讨论】:
-
您的预期输出是什么?
标签: java arraylist java-8 java-stream
我想知道是否有可能通过流 API 进行转换
List<Integer> li = Arrays.asList(1,2,3,45,678);
到char[] ch 而不进入String 的中间阶段?我找不到。
【问题讨论】:
标签: java arraylist java-8 java-stream
可能是一种遍历列表并将值分配给数组中相应索引的方法:
IntStream.range(0, li.size())
.forEach(i -> ch[i] = (char) li.get(i).intValue());
或者如果原语不是必须的,那么类似:
Character[] ch = li.stream()
.map(i -> (char) i.intValue())
.toArray(Character[]::new);
【讨论】:
我实现了解决方案,但我必须有一个中间 String 转换。
List<Integer> li = Arrays.asList(1,2,3,45,678);
String Str =li.toString();
char [] ch = new char[Str.length()];
for(int i=0;i<Str.length();i++)
{
ch[i] = Str.charAt(i);
}
for(char cc:ch)
{
System.out.print(cc);
}
输出:[1、2、3、45、678]
【讨论】:
我认为简单的方法是声明一个字符数组,并通过for循环和toArray()函数将列表数组保存在char数组中。
【讨论】: