如何将对象列表转换为 Java 中的整数列表?
How to convert a list of object to a list of integer in Java?
我有一个对象的内部列表到一个列表,我想把它转换成一个整数列表,因为我知道它的元素是整数。
List<List<Object>> valuesModel = FCSMs.get(0).getValues();
for (List<Object> innerList : valuesModel) {
//CONVERT LIST OF OBJECT TO LIST OF INTEGER
}
我该怎么办?
你可以这样做。由于您知道所有对象都是整数,因此不会进行任何检查来避免 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]
首先,最好仔细检查您实际上是在处理整数类型的列表。您可能知道唯一的输入是那种类型,但将来使用您的代码的任何人都不会(因为它不是用 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);
}
我有一个对象的内部列表到一个列表,我想把它转换成一个整数列表,因为我知道它的元素是整数。
List<List<Object>> valuesModel = FCSMs.get(0).getValues();
for (List<Object> innerList : valuesModel) {
//CONVERT LIST OF OBJECT TO LIST OF INTEGER
}
我该怎么办?
你可以这样做。由于您知道所有对象都是整数,因此不会进行任何检查来避免 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]
首先,最好仔细检查您实际上是在处理整数类型的列表。您可能知道唯一的输入是那种类型,但将来使用您的代码的任何人都不会(因为它不是用 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);
}