我有一个对象的内部列表,我想把它转换成一个整型列表,因为我知道它的元素是整型的。
List<List<Object>> valuesModel = FCSMs.get(0).getValues(); for (List<Object> innerList : valuesModel) { //CONVERT LIST OF OBJECT TO LIST OF INTEGER }
我该怎么办?
w8f9ii691#
首先,仔细检查您实际上正在处理的是Integer类型的列表是一个很好的做法。您可能知道唯一的输入是该类型,但将来使用您的代码的任何人都不会知道(因为它不是Integer类型的)。之后,您可以简单地将其“强制转换”为Integer类型。关于如何做到这一点的一些伪代码可以在下面找到:
List<List<Integer>> result = new ArrayList<>(); for (List<Object> innerList : valuesModel) { List<Integer> integerList = new ArrayList<>(); for (Object object : innerList) { if (object instanceof Integer) { integerList.add((Integer) object); } } result.add(integerList); }
zd287kbt2#
你可以这样做。由于您知道所有对象都是整数,因此不进行任何检查以避免ClassCastExceptions。
List<List<Object>> valuesModel = List.of(List.of(1,2,3,4), List.of(5,6,7,8)); List<Integer> integers = valuesModel.stream() .flatMap(Collection::stream) .map(ob->(Integer)ob) .collect(Collectors.toList()); System.out.println(integers);
指纹
[1, 2, 3, 4, 5, 6, 7, 8]
fcg9iug33#
如果你的对象包含整数值,你可以使用下面的逻辑来获取值列表
List<Integer> intList = objList.stream().map(e->e.getId()).collect(Collectors.toList());
3条答案
按热度按时间w8f9ii691#
首先,仔细检查您实际上正在处理的是Integer类型的列表是一个很好的做法。您可能知道唯一的输入是该类型,但将来使用您的代码的任何人都不会知道(因为它不是Integer类型的)。之后,您可以简单地将其“强制转换”为Integer类型。关于如何做到这一点的一些伪代码可以在下面找到:
zd287kbt2#
你可以这样做。由于您知道所有对象都是整数,因此不进行任何检查以避免ClassCastExceptions。
指纹
fcg9iug33#
如果你的对象包含整数值,你可以使用下面的逻辑来获取值列表