私は、ArrayListを使用する場所で新しいインスタンスを使用し、同等のインターフェイスを使用してCollections.sort()メソッドを使用しています。私はそれがソートされ、私のコードのどこにバグがあるときにそれがなぜハッシュコードを出力するのか分からない。誰でも間違いを見つけて詳細に説明してください。Collections.sort()を使用すると、ハッシュコードがソートされ、出力されます
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;
}
}
出力:
[[email protected], [email protected], [email protected], [email protected]]
あなたは 'toString'メソッドをオーバーライドする必要がありますされ、オブジェクトのtoString()を考えて、デフォルトでは、かなりの出力を印刷する
toString()
メソッドをオーバーライドします。 –スーパーRohit。できます。 –
あなたは大歓迎です:) –