I worked with one example where it uses an ArrayList, contains new instances, and uses the Collections.sort () method using a comparable interface. I do not know why it prints a hash code when it sorts and where is the error in my code. Someone can figure out the error and explain it to me in detail.
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; } }
Output:
[ Fruit@36422510 , Fruit@308f5944 , Fruit@132d9844 , Fruit@1667a232 ]
source share