Сравнение Java для LinkedList - PullRequest
       31

Сравнение Java для LinkedList

0 голосов
/ 21 сентября 2018
public class Node<E> {
    private E data;
    private Node<E> next;
    public Node<E>(){
        next = null;
    }
    public Node(E dataIn){
    data = dataIn;
    }       
}

///

class LinkedList<E>{
    public void insert(E dataIn){
            if(ctr != 0){
                Node<E> temp = new Node<E>(dataIn);
                Node<E> cursor = head;
                Node<E> prev = cursor;
                while(cursor != null && cursor.data.compareTo(dataIn) < 0){
                        prev = cursor;
                        cursor = cursor.next;
                }
                prev.next = temp;
                temp.next = cursor;
             }
             else
                add(dataIn);
             ++ctr;  
   }
}

В моей функции вставки как я могу сообщить Java, что cursor.data имеет тот же тип, что и dataIn? (Допустим, они оба являются целыми числами) ИзвинитеЯ прошу прощения за этот тупой вопрос.Я новичок, и я понятия не имею, где написать функцию «CompareTo», потому что я использую Integer, а не пользовательский тип данных.Поэтому, когда я компилирую код, я получаю эту ошибку

required: E#1
found: no arguments
reason: actual and formal argument lists differ in length
where E#1,E#2 are type-variables:
E#1 extends Object declared in class LinkedList
E#2 extends Object declared in class Node
LinkedList.java:34: error: cannot find symbol
        while(cursor != null && cursor.data.compareTo(dataIn) < 0){
                                           ^
symbol:   method compareTo(E#1)
location: variable data of type E#2
where E#1,E#2 are type-variables:
E#1 extends Object declared in class LinkedList
E#2 extends Object declared in class Node

Заранее благодарю за внимание.!

1 Ответ

0 голосов
/ 21 сентября 2018

Определите класс списка следующим образом

public class LinkedList<E extends Comparable<E>> {

    private static class Node<E> {

и убедитесь, что класс Node является вложенным статическим (в данном случае это может быть private, package-private).После этого можно будет добавить любой тип, который реализует Comparable в связанный список.

...