【问题标题】:How to convert a list of object to a list of integer in Java?如何将对象列表转换为Java中的整数列表?
【发布时间】:2021-08-08 23:09:58
【问题描述】:

我有一个内部对象列表到一个列表中,我想将它转换为一个整数列表,因为我知道它的元素是整数。

List<List<Object>> valuesModel = FCSMs.get(0).getValues();
            for (List<Object> innerList : valuesModel) {

//CONVERT LIST OF OBJECT TO LIST OF INTEGER

}

我该怎么办?

【问题讨论】:

  • 转换后的列表可以是linkedList吗?
  • 泛型扩展了静态时间检查。尝试在运行时更改类型是没有意义的

标签: java object casting integer


【解决方案1】:

首先,最好仔细检查您是否确实在处理整数类型的列表。您可能知道唯一的输入是该类型,但将来使用您的代码的任何人都不会(因为它不是用整数输入的)。之后,您可以简单地将其“转换”为 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);
}

【讨论】:

    【解决方案2】:

    你可以这样做。由于您知道所有对象都是整数,因此不会进行任何检查来避免 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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-14
      • 2019-08-04
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 2019-06-09
      相关资源
      最近更新 更多