如何在java中将列表字符串列表转换为列表整数列表

时间:2014-08-27 07:25:36

标签: java list

我有一个List列表字符串,现在我想将其转换为List of List Integer。建议一些方法,如何进行呢?

这是我的代码:

public class convert {

    public static void main(String[] args) {
        try {

            List<List<String>> outerList = new ArrayList<List<String>>();
            outerList.add(new ArrayList<String>(asList("11","2")));
            outerList.add(new ArrayList<String>(asList("2","1")));
            outerList.add(new ArrayList<String>(asList("11","3")));

            System.out.println(outerList);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
} 

4 个答案:

答案 0 :(得分:4)

我建议使用Streams API:

import static java.util.stream.Collectors.toList;

...

integerList = outerList.stream()
   .map(innerList->innerList.stream().map(Integer::valueOf).collect(toList()))
   .collect(toList());

答案 1 :(得分:3)

您只需尝试这样:

for(String s : yourStringList) 
{
  intList.add(Integer.valueOf(s));
}

修改

for (List<String> s : yourStringList) {
    List<Integer> x = new ArrayList<Integer>();
    for (String str: s) {
        x.add(Integer.parseInt(str));
    }
    intList.add(x);
}

答案 2 :(得分:1)

res是新的arrayList包含整数列表。

       List<List<Integer>> res = new ArrayList<List<Integer>>();

        for(List<String> l : outerList){
            ArrayList<Integer> al = new ArrayList<Integer>();
            for(String s: l){
                al.add(Integer.valueOf(s));
            }
            res.add(al);
        }

答案 3 :(得分:1)

您必须迭代每个subItem的每个item

List<List<String>> stringList = new ArrayList<List<String>>(); // Input
List<List<Integer>> intList = new ArrayList<List<Integer>>(); // Output
for (List<String> item : stringList) {
    List<Integer> temp = new ArrayList<Integer>();
    for (String subItem : item) {
        temp.add(Integer.parseInt(subItem));
    }
    intList.add(temp);
}