gpt4 book ai didi

java - 获取 DIY 链表类以抛出异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:57 27 4
gpt4 key购买 nike

所以我从头开始制作了一个 LinkedList 类。我的 append(Object o) 方法将一个对象添加到列表的末尾,prepend(Object o) 将一个对象添加到列表的开头,indexOf(Object o) 返回给定对象的索引。

我唯一无法开始工作的是我的 get(int i) 方法。好吧,那是错误的。它工作正常。它返回列表中给定索引处的对象,就像我想要的那样。唯一的问题是它不会捕获 IndexOutOfBounds 异常。

public class LinkedList {

//node class
public class Node {
public Object data;
public Node next;
public Node (Object data) {
this.data = data;
}
}

//variables
protected Node head;


//after this is my append, prepend, etc methods but they aren't important


public Object get(int index) {
if (index < 0)
return null;

Node current = null;

try {
if (head != null) {
current = head.next;
for (int i = 1; i < index; i++) {
if (current.next == null) {
return null;
}
current = current.next;
}
if (current.data == null) {
throw new IndexOutOfBoundsException();
}
else
return current.data;
}
}
catch (IndexOutOfBoundsException e) {
System.out.println("Warning: Index out of bounds");
}
return current;
}

如果索引 i 处没有元素,我不希望此代码返回 null,而是要捕获异常。但是,无论我做什么,它都不会捕获异常。请帮我查明并解决问题所在。谢谢!

最佳答案

您的循环提前返回,因为您执行了以下检查:

if(current.next == null) {
return null;
}

关于java - 获取 DIY 链表类以抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com