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

使用Iterator遍历List<Point>,找出Y坐标最大的Point对象

修复并完成highestPoint静态方法

咱们先梳理下你现有代码里的问题,再给出完整可运行的实现:

原代码的核心问题点

  • 调用pointIterator.next()后没有把返回的Point对象存到变量里,导致没法访问该对象的Y坐标
  • 错误地对List集合调用getY(),应该是对遍历到的单个Point对象操作
  • 初始highest设为0不合理,如果所有Point的Y坐标都是负数,会得到错误结果
  • 没有更新highestPoint变量,最终无法返回正确的目标对象

修正后的完整代码

import java.awt.Point;
import java.util.Iterator;
import java.util.List;

public class PointHelper { // 需要一个类来承载静态方法
    public static Point highestPoint(List<Point> points) {
        // 先处理空集合/空参数的情况,避免运行时异常
        if (points == null || points.isEmpty()) {
            return null;
        }
        
        Iterator<Point> pointIterator = points.iterator();
        // 用第一个Point的Y坐标初始化最高值,同时记录初始最高点
        Point highestPoint = pointIterator.next();
        int highest = highestPoint.y; // 也可以用highestPoint.getY(),返回double类型,按需选择即可
        
        while (pointIterator.hasNext()) {
            Point currentPoint = pointIterator.next();
            // 比较当前点的Y坐标与当前最高值
            if (currentPoint.y > highest) {
                highest = currentPoint.y;
                highestPoint = currentPoint; // 更新最高点对象
            }
        }
        
        return highestPoint;
    }
}

代码逻辑说明

  • 先做空值校验,防止遍历空集合时抛出NoSuchElementException
  • 用第一个遍历到的Point初始化基准值,这样即使所有Y坐标都是负数,也能正确找到最大值
  • 每次遍历都把next()返回的对象存到currentPoint变量,通过它访问Y坐标(Point类的y是公共成员变量,也可以用getY()方法)
  • 每当发现Y坐标更大的点时,同时更新最高值和最高点对象
  • 最后返回记录的最高点对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:22:35