2016-05-04 21 views
0

私は独自のlinkedListをJavaで実装しようとしました。次に、整数の2つのリンクされたリストを合計する特定の関数を書きたいと思います。Main.javaはチェックされていない操作または安全でない操作を使用します

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; 

      } 

ためのコードがあります:問題はここに

は私の関数のコードです...によるリストの汎用性に、私はエラーを持って、私は私のコードを確認することができないです私の二つのクラス:私はこのコードを試してみたかった時に、ここでノードと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); 

そしてそこには、私が手にエラーが(私はIDEとしてideoneを使用しています)です:

 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のみを使用しなければならなかったからです)。私は物事のうねりを試しましたが、どれも働いていませんでした...

ありがとう!

+0

あなたは正確なエラーをお知らせください。 – piyushj

+3

'LinkedList 結果=新しいLinkedList()'これは、生の型を使用しています。 'new LinkedList <>()'または 'new LinkedList ()'でなければなりません。 –

+0

@JBNizet、それはよい答えになるでしょう –

答えて

0

あなた和法では、静的なkeywork使用します。

のpublic staticをLinkedListの合計(LinkedListはリスト1、LinkedListのLIST2){...}

あなたはそれは静的なmainメソッドから

0

を合計を呼び出す場合2つの大きな整数を追加しているように見えますが、それぞれがリストで表されます。

2つのエラーがあります。a)。関数 "sum"では、whileループの終了条件が正しくありません。最後の2つの要素は常に追加されません。 b)。関数 "sum" tempは、前の位置への増加があるかどうかを表します。それは処理されません。

BigIntegerまたはJava組み込みリストを検討しますか?

0
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メソッドの型(静的)に問題があると思われます。静的メソッドから非静的メソッドを呼び出すかどうかを確認してください。

関連する問題