列表<Long> 到列表<Integer>
List<Long> to List<Integer>
我有一个 SQL 查询,其中 return 是一个数组。
List<Integer> listInteger = new ArrayList<>();
try (QueryCursor<List<?>> cursor = cache.query(sql_query)) {
listInteger = (List<Integer>) cursor.getAll().get(0);
}
然后我尝试获取数组中的最大值元素。
int max = Collections.max(listInteger).intValue();
但是这个 returns java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
错误。
然后我试了
int max = (int) Collections.max(ventriTrigeminiBeatList).longValue();
这也return同样的错误。
我的 SQL 查询是 Select sum( timestamp <= t1 and timestamp >= t2), sum( timestamp <= t3 and timestamp >= t4) from db ;
我正在查询 Ignite 缓存。查询运行良好,它 return 是一个数组(例如:[3, 3, 3])。我无法使用 sql MAX,因为我稍后也会使用此 listInteger
。
谁能告诉我如何解决这个问题。谢谢。
SQL SUM
函数 return 类型映射到 Long
对于 Java 中的整数类型列,因此您可能需要更改列表到 List<Long>
然后处理它。
参见示例https://docs.oracle.com/cd/E19226-01/820-7627/bnbvy/index.html
您可以获得 long
最大值,然后在需要时将其转换为 int
...
long longMax = Collections.max(listInteger).longValue();
Integer intMax = longMax == null ? null : Math.toIntExact(longMax); // This throws an exception if an overflow is present.
我有一个 SQL 查询,其中 return 是一个数组。
List<Integer> listInteger = new ArrayList<>();
try (QueryCursor<List<?>> cursor = cache.query(sql_query)) {
listInteger = (List<Integer>) cursor.getAll().get(0);
}
然后我尝试获取数组中的最大值元素。
int max = Collections.max(listInteger).intValue();
但是这个 returns java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
错误。
然后我试了
int max = (int) Collections.max(ventriTrigeminiBeatList).longValue();
这也return同样的错误。
我的 SQL 查询是 Select sum( timestamp <= t1 and timestamp >= t2), sum( timestamp <= t3 and timestamp >= t4) from db ;
我正在查询 Ignite 缓存。查询运行良好,它 return 是一个数组(例如:[3, 3, 3])。我无法使用 sql MAX,因为我稍后也会使用此 listInteger
。
谁能告诉我如何解决这个问题。谢谢。
SQL SUM
函数 return 类型映射到 Long
对于 Java 中的整数类型列,因此您可能需要更改列表到 List<Long>
然后处理它。
参见示例https://docs.oracle.com/cd/E19226-01/820-7627/bnbvy/index.html
您可以获得 long
最大值,然后在需要时将其转换为 int
...
long longMax = Collections.max(listInteger).longValue();
Integer intMax = longMax == null ? null : Math.toIntExact(longMax); // This throws an exception if an overflow is present.