Ich arbeitete mit einem Beispiel, in dem ArrayList neue Instanzen verwendet und die Collections.sort() -Methode verwendet, die die vergleichbare Schnittstelle verwendet. Ich weiß nicht, warum es den Hashcode ausdruckt, wenn es sortiert und wo der Fehler in meinem Code. Kann jemand bitte den Fehler herausfinden und mich im Detail erklären.Wenn Sie Collections.sort() verwenden, sortiert und druckt es den Hashcode
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;
}
}
Ausgang:
[[email protected], [email protected], [email protected], [email protected]]
Sie müssen Methode überschrieben 'toString' implementiert ist. –
Super Rohit. Es klappt. –
Gern geschehen :) –