Главная.java использует непроверенные или небезопасные операции

Я попытался реализовать свой собственный сингл linkedList на java, и я хотел, чтобы он был общим, потому что я думаю, что это лучший выбор. Затем я хочу написать конкретную функцию для sum two linkedlist of integer. Проблема связана с универсальностью списка, я получил ошибку и не могу проверить свой код…

Вот код моей функции :

public LinkedList<Integer> sum(LinkedList<Integer> list1, LinkedList<Integer> list2){
//  if (list1== null || list2 ==null) return null;

    LinkedList<Integer> result = new LinkedList<Integer>();

    Node<Integer> node11 = list1.first;
    Node<Integer> node22 = list2.first;
    int temp = 0;

    while (node11.next!=null && node22.next!=null){
            int node1 = node11.data;
            int node2 = node22.data;
            int node3 = (node1 + node2 + temp) %10;
            temp = (node1 + node2)>=10 ? 1: 0;
            result.insertLast(node3);

            node11 = node11.next;
            node22 = node22.next;
    }

    return result;

             }

Существует код для моих двух классов: Node и linkedList

class Node<T> {
  public T data;                // data in Node.
  public Node<T> next;          // points to next Node in list.

  public Node(T data){                                       
  this.data = data;
  }
}

class LinkedList<T> {
public Node<T> first;       

public LinkedList(){
      first = null;
}

 public void insertLast(T data){
      Node<T>  newNode = new Node<T> (data);        //Creation of New Node.

      if(first==null)   {
             first=newNode;                 
             return;
      }

      Node<T>  tempNode = first;
            while(tempNode.next!=null){
            tempNode=tempNode.next;
            }
      tempNode.next=newNode; 
      }

И вот мой главный, когда я хотел попробовать этот код :

    LinkedList<Integer> list = new LinkedList();
    LinkedList<Integer> list2 = new LinkedList();

    list.insertLast(5);
    list.insertLast(1);
    list.insertLast(3);    

    list2.insertLast(2);
    list2.insertLast(9);
    list2.insertLast(5); 

    LinkedList<Integer> list3 = sum(list, list2);

И есть ошибка, которую я получаю (я использую ideone в качестве IDE) :

     Main.java:179: error: cannot find symbol
    LinkedList<Integer> list3 = sum(list, list2);
                                ^
     symbol:   method sum(LinkedList<Integer>,LinkedList<Integer>)
     location: class Ideone
     Note: Main.java uses unchecked or unsafe operations.
     Note: Recompile with -Xlint:unchecked for details.

Пожалуйста, скажите мне, где ошибка и что я должен сделать, чтобы исправить это? Я знаю, что это связано с универсальностью (потому что я должен был использовать только Integer в своей функции). Я попробовал looot вещей, но ни один из них не работал…

Спасибо!

3 ответа

  1. Используйте статику keywork в методе sum :

    общая статическая сумма LinkedList (LinkedList list1, LinkedList list2){ … }

    при вызове sum из статического метода main

  2. Похоже, вы добавляете два больших целых числа, каждое из которых представлено списком.

    Есть две ошибки: а). в функции» sum » условие завершения цикла while неверно. Последние два элемента всегда не добавляются. си.) в функции «sum» temp представляет, есть ли увеличение к предыдущей позиции. Это не обрабатывается.

    Рассмотрим BigInteger или Java встроенный список?

  3. public class ThreadingMulti {
        public static void main(String[] args) throws InterruptedException {
            LinkedList<Integer> list = new LinkedList();
            LinkedList<Integer> list2 = new LinkedList();
    
            list.add(5);
            list.add(1);
            list.add(3);    
    
            list2.add(2);
            list2.add(9);
            list2.add(5); 
    
            LinkedList<Integer> list3 = sum(list, list2);
        }
    
        public static LinkedList<Integer> sum(LinkedList<Integer> list1, LinkedList<Integer> list2){
            LinkedList<Integer> result = new LinkedList<Integer>();
            return result;
    
        }
    }
    

    Этот код работает нормально. Кажется проблема с типом метода sum (static). Проверьте, не вызываете ли вы нестатический метод из static method.