2013-07-06 18 views
6

kod numarasını sıralar ve yazdırır. ArrayList'in yeni örnekler içerdiği ve karşılaştırılabilir arabirimi kullanarak Collections.sort() yöntemini kullandığı bir örnekle çalışıyordum. Kodumdaki hatanın nerede ve ne zaman hata yaptığını neden bilmiyorum. Herkes hatayı bulabilir ve ayrıntılı olarak açıklayabilir.Collections.sort() öğesini kullanırken,

SortFruitObject.java

import java.util.*; 
public class SortFruitObject{ 
    public static void main(String[] args){ 
     ArrayList<Fruit> frui = new ArrayList<Fruit>(); 

     frui.add(new Fruit("Pine", "PineDesc", 500)); 
     frui.add(new Fruit("Apple", "AppleDesc", 400)); 
     frui.add(new Fruit("Banana", "BananaDesc", 450)); 
     frui.add(new Fruit("JackFruit", "JackFruitDesc", 300)); 

     Collections.sort(frui); 
     System.out.println(frui); 
    } 
} 

Fruit.java

import java.io.*; 
import java.util.*; 
public class Fruit implements Comparable<Fruit>{ 
    private String fruitName; 
    private String fruitDesc; 
    private int fruitQuantity; 

    public int compareTo(Fruit f){ 
     return fruitName.compareTo(f.getFruitName()); 
    } 

    public Fruit(String fruitName, String fruitDesc, int fruitQuantity){ 
     this.fruitName = fruitName; 
     this.fruitDesc = fruitDesc; 
     this.fruitQuantity = fruitQuantity; 
    } 
    public void setFruitName(String fruitName){ 
     this.fruitName = fruitName; 
    } 
    public void setFruitDesc(String fruitDesc){ 
     this.fruitDesc = fruitDesc; 
    } 
    public void setFruitQuantity(int fruitQuantity){ 
     this.fruitQuantity = fruitQuantity; 
    } 
    public String getFruitName(){ 
     return fruitName; 
    } 
    public String getFruitDesc(){ 
     return fruitDesc; 
    } 
    public int getFruitQuantity(){ 
     return fruitQuantity; 
    } 
} 

Çıktı:

[[email protected], [email protected], [email protected], [email protected]] 
+1

Sen 'toString' yöntemini geçersiz gerekir nesnenin toString() gördüğü varsayılan olarak oldukça çıkışını yazdırmak için toString() yöntemini geçersiz kılar. –

+1

Süper Rohit. İşe yarıyor. –

+0

Rica ederim :) –

cevap

10

Sen t gerek o da

public String toString() { 
     return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
    } 

gibi uygulanan ve böylece çıkış

+0

+1 Thats Right. Ama kodun antrenman yapmadı. İşte şimdi kullandım. Genel public toString() { \t \t dönüş fruitName + "" + fruitDesc + "" + fruitQuantity + "\ n"; \t} –

+5

@JavaBeginer. Nasıl yapılacağını değil, varsayılan "toString" in nasıl göründüğünü verdi. Bu, şimdi yaptığınız, geçersiz kılmanız gereken şey. –

İlgili konular