gpt4 book ai didi

java - 如何为泛型 SortedLinkedList 创建泛型类型 T 数组?

转载 作者:行者123 更新时间:2023-12-01 19:31:39 24 4
gpt4 key购买 nike

我已经实现了具有泛型类型的 SortedLinkedList,但任务之一是创建一个 toArray 方法,该方法采用 T[] 数组并用以下元素填充它链接列表。为此,我想我应该创建一个 get() 方法,该方法返回该点的 Node 值,并用这些值填充数组。不幸的是,我遇到了 IndexOutofBoundsExceptions,并且不确定我的问题到底在哪里。如果有人可以提供帮助,我们将不胜感激!

我的获取方法:

public T get(int i) throws IndexOutOfBoundsException {
Node<T> n = head;
if (i < 0)
throw new IndexOutOfBoundsException();
if(i==0)
return head.element;
while(n != null && i > 0){
n = n.next;
i--;
}
if (n == null)
throw new IndexOutOfBoundsException();

return n.element;
}

还有我的 toArray 方法:

public T[] toArray(T[] array){
int len = this.size();
//T[] copy = (T[]) new Comparable[len];
for (int i = 0; i < len; i++){
array[i] = this.get(i);
}
return array;
}

编译器在 array[i] = this.get(i) 处提示 OutOfBoundsException,我真的不明白为什么。任何帮助将不胜感激,如果需要,我很乐意提供更多的 SortedList 代码。谢谢!

最佳答案

我所说的单循环是这个伪代码

T array
index = 0
Node node -> point to linked list head
Iterate until node is null:
array[index] = node.element
node -> point to next element
index++

关于java - 如何为泛型 SortedLinkedList 创建泛型类型 T 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255502/

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