我想知道如何转换ArrayList<String>为ArrayList<Integer>.
我有这个代码:
ArrayList<String> sNumbers = new ArrayList<String>();
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
sNumbers.add(numbers.toString());
System.out.println(sNumbers);//for testing
Run Code Online (Sandbox Code Playgroud)
我明白了:
[[1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)
这就是我的问题:如何扭转这一过程(获取一行数字并将其放入数字中ArrayList)
它应该是这样的:
sNumbers
0 [1, 2, 3] -->
numbers
0 [1]
1 [2]
2 [3]
(without brackets)
Run Code Online (Sandbox Code Playgroud)
调用toString在List<Integer>将返回String的表示List(即"[1,2,3]"),而不是一个List<String>含有String它的每个内容的表示.
您必须String手动填写:
for (Integer i: numbers) {
sNumbers.add(String.valueOf(i));
}
Run Code Online (Sandbox Code Playgroud)
注意
在声明性和命令式编码方面,你可以用Java 8做一些更好的东西 - 不幸的是我目前还没有安装jdk.
希望其他人会选择这个并回答Java 8.
正如@mena所说,你可以这样做:
纯Java:
List<String> sNumbers = new ArrayList<String>();
for (Integer i: numbers) {
sNumbers.add(String.valueOf(i));
}
Run Code Online (Sandbox Code Playgroud)
JDK 8 - 地图:
List<String> sNumbers = numbers.stream().map(
n -> n.toString()).collect(Collectors.toList()
);
Run Code Online (Sandbox Code Playgroud)
或者使用guava库,它类似于JDK8.
我假设你可以在这里找到更多的例子:直接 将List <String>转换为List <Integer>
| 归档时间: |
|
| 查看次数: |
3732 次 |
| 最近记录: |