我的问题受到这个问题的启发,但旨在使用 Java Streams 来获得 a List<Integer>。
我有这样的代码。它似乎正在返回一个ArrayList,大概是ArrayList<Integer>. 但是编译器拒绝让我这样声明结果。
String input = "1 2 3 4 5";
Stream stream = Arrays.stream( input.split( " " ) );
var x = stream.map( s -> Integer.valueOf( ( String ) s ) ).collect( Collectors.toList() );
这在使用var最新 Java 版本的新功能时运行。
System.out.println( x.getClass() );
System.out.println( x );
类 java.util.ArrayList
[1, 2, 3, 4, 5]
我有两个问题:
为什么被x报告为一个ArrayList但我不能声明x为一个 ArrayList(错误:不兼容的类型),例如:
ArrayList<Integer> x = stream.map( s -> Integer.valueOf( ( String ) s ) ).collect( Collectors.toList() );
有没有更好的方法来使用流将这串数字转换为 a Listof Integer?
慕村9548890
肥皂起泡泡
红颜莎娜
相关分类