You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取List<TileAnimation>中内部List<TileFrame>的最大长度

获取TileAnimation集合中TileFrames的最大长度

针对需求,提供两种实用实现方式:

方式一:传统循环遍历

逻辑直观,适配所有Java版本:

int maxSize = 0;
for (TileAnimation anim : tileAnimations) {
    // 判空避免空指针异常
    if (anim != null && anim.getTileFrames() != null) {
        int currentSize = anim.getTileFrames().size();
        if (currentSize > maxSize) {
            maxSize = currentSize;
        }
    }
}
// maxSize即为所有tileFrames列表的最大长度

必须对TileAnimation实例和tileFrames列表做非空判断,防止运行时抛出NullPointerException。

方式二:Java 8+ Stream API

借助流式操作简化代码,更符合现代Java编程风格:

import java.util.Objects;
import java.util.List;

// ...

int maxSize = tileAnimations.stream()
    .filter(Objects::nonNull) // 过滤空的TileAnimation对象
    .map(TileAnimation::getTileFrames) // 提取tileFrames列表
    .filter(Objects::nonNull) // 过滤空的列表
    .mapToInt(List::size) // 将列表转为对应的长度值
    .max() // 计算最大值
    .orElse(0); // 若没有有效元素,返回默认值0

这种链式调用的方式代码紧凑,可读性强,同时自动处理了空集合的边界情况。

内容的提问来源于stack exchange,提问作者user21172734

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:39:56