Pracowałem z jednym przykładem, w którym używa ArrayList zawiera nowe wystąpienia i przy użyciu metody Collections.sort() przy użyciu porównywalnego interfejsu. Nie wiem, dlaczego wypisuje hashcode podczas sortowania i gdzie błąd w moim kodzie. Czy ktoś może znaleźć błąd i wyjaśnić mi szczegółowo.Podczas korzystania z Collections.sort(), sortuje i wypisuje kod skrótu
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;
}
}
wyjściowa:
[[email protected], [email protected], [email protected], [email protected]]
Musisz przesłonić metodę 'toString'. –
Super Rohit. To działa. –
Nie ma za co :) –