Java ArrayList <Integer>到ArrayList <String>,反之亦然

Jum*_*p3r 3 java arraylist

我想知道如何转换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)

Men*_*ena 8

调用toStringList<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.


Ber*_*eri 6

正如@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>