2017-03-20 11 views
0

私はバスケットボールでリンクされたバッグの削除メソッドに渡しています。私はすでに渡されたものと同じオブジェクトをチェックしています。私は方法が偽を返す理由を把握することができません

public static void removeMain(Scanner input,LinkedBag<Basketball> teamX){ 
     System.out.println("Please enter the team & rank of the object you want to remove."); 
     System.out.println("Team?"); 
     String team = input.nextLine(); 
     System.out.println("Rank?"); 
     int rank = input.nextInt(); 
     input.nextLine(); 

     if(teamX.remove(new Basketball(team, rank))){ 
      System.out.println("REMOVED!"); 
     }else{ 
      System.out.println("Team was not found due to it not being in the list."); 
     } 

    } 



public boolean remove(E target){ 

     boolean found = false; 
     int i = 0; 
     Node<E> pointer = head; 
     Node<E> previous = head; 

     while (pointer != null && !found){ 
      if((pointer.getData()).equals(target)){ 
       found = true; 
      }else{ 
       pointer = pointer.getLink(); 
       if(i>0){ 
        previous = previous.getLink(); 
       } 
       i++; 
      } 
     } 

     if(found){ 
      previous.setLink(pointer.getLink()); 
      numElements--; 
     } 



     return found; 
    } 

これはバスケットボールのクラス

パブリッククラスバスケットボールがComparableを

 public int compareTo(Basketball anotherTeam) 
throws ClassCastException 
{ 
    if (!(anotherTeam instanceof Basketball)) 
     throw new ClassCastException("A Car object expected."); 

    if (getRanking() < anotherTeam.getRanking()) 
     return -1; 
    else if (getRanking() > anotherTeam.getRanking()) 
     return 1; 
    else 
     return team.compareToIgnoreCase(anotherTeam.getTeam()); 
} 
+2

コードを画像としてではなく、画像として投稿してください。 –

+0

どうすればいいですか? –

+0

テキストをコピーして投稿に貼り付けてください。 –

答えて

0

を実装しているが、あなたがバスケットボールのクラスにcostumized'equals' ovverideを作ってみましたか? javaでない場合は、デフォルトで "Object" JavaDoc Objectからのものを使用します。これは、クラスの作成方法によっては動作しない場合があります。例えば真Javaでstackoverflow post

EDIT新しい情報

を試みるが値1(偽0)に変換され、これには同じになることはありません、ここでも0を返すか、等号を使用するがあれば代わりに上書きソートされたランキングを知る必要はありません

0

removeTo()メソッドでpoint.getData()。equals()を使用するため、compareTo()を定義するのではなく、equals 。

または、equlas()の代わりにremove()メソッドで独自のcompareTo()を使用することもできます。

関連する問題