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

标签 java generics linked-list sortedlist toarray

我已经实现了具有泛型类型的 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/

相关文章:

generics - Go(语言)通用数字类型/接口(interface)

java - 未经检查的 Actor : Is there a way to avoid it in this case?

c# - 请帮助我理解在 C# 中使用泛型时的多态性

c - 将不同的单词保存到链接列表中

c - 比较 C 中链表中的值时出现问题

Java try-throw-catch 的麻烦

java - OsgiPlugin - 插件从未解决服务错误

javascript - 将数组转换为链表 - 来自 Eloquent Javascript

java - 服务器上flex和java之间的连接失败

java - 制作 JPA 实体的保护性副本