【问题标题】:Java: How to return the only element in an ArrayListJava:如何返回 ArrayList 中的唯一元素
【发布时间】:2014-11-29 14:22:22
【问题描述】:

我正在研究一个机器人迷宫,机器人可以在其中找到目标而不会撞到墙上。我已经对我的代码进行了彻底的注释,希望它可以被理解。

在死胡同和走廊,passageDirectionsArrayList只有一个通道。我如何返回这个唯一的方向?

任何帮助表示赞赏:)

PS:我是一个初学者程序员,还在学习,所以解释你的答案,就好像你要向一个三岁的孩子解释它:)

【问题讨论】:

    标签: java arraylist


    【解决方案1】:

    您可以使用passageDirections.get(0),它将返回列表中的第一个元素。 因为(我希望)您保证列表中只有一个元素,所以可以解决您的问题。

    https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#get(int)

    【讨论】:

    • 如此简单的解决方案!不知道我是怎么错过的哈哈。问题是,它编译得很好,但是由于某种原因它无法运行:(
    • @codeav3 “...由于某种原因无法运行”是什么意思?在大多数情况下,错误消息中明确提到了原因:)
    • @pshemo 这是一个在程序运行时不断重复的错误。机器人不动。 java.lang.reflect.InvocationTargetException...Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0...
    • @codeav3 所以你得到了原因:使用的集合的大小为0,这意味着其中没有元素,所以你不能get任何元素(因为没有)。
    • @codeav3 每个 IDE,如 Eclipse、NetBeans、IntelliJ 都有自己的调试器。使用你想要的。
    【解决方案2】:

    您应该在调用之前检查大小以防止 IndexOutOfBoundsException

    if (passageDirections.size() > 0)
      passageDirections.get(0)
    

    【讨论】:

    • 这不会阻止NullPointerException,它会阻止IndexOutOfBoundsException。不过还是先检查一下还是不错的。
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2022-12-17
    • 2020-07-23
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    相关资源
    最近更新 更多