Quick Java code snippet to sort Array ascending or descending using comparator in Java.
import java.util.Arrays;
import java.util.Comparator;
public class SortFruitObject {
public static void main(String args[]) {
Fruit pineappale = new Fruit("Pineapple", "Pineapple description", 70);
Fruit apple = new Fruit("Apple", "Apple description", 100);
Fruit orange = new Fruit("Orange", "Orange description", 80);
Fruit banana = new Fruit("Banana", "Banana description", 90);
Fruit[] fruits = new Fruit[4];
fruits[0] = pineappale;
fruits[1] = apple;
fruits[2] = orange;
fruits[3] = banana;
Arrays.sort(fruits, FruitNameComparator);
System.out.println("Sort by Fruit Name");
for (Fruit temp : fruits) {
System.out.println(temp.toString());
}
System.out.println("=======================");
Arrays.sort(fruits, fruitQuantityComparator);
System.out.println("Sort by Fruit Quantity");
for (Fruit temp : fruits) {
System.out.println(temp.toString());
}
}
public static Comparator<Fruit> FruitNameComparator = new Comparator<Fruit>() {
public int compare(Fruit fruit1, Fruit fruit2) {
String fruitName1 = fruit1.getFruitName().toUpperCase();
String fruitName2 = fruit2.getFruitName().toUpperCase();
// ascending order
return fruitName1.compareTo(fruitName2);
// descending order
// return fruitName2.compareTo(fruitName1);
}
};
public static Comparator<Fruit> fruitQuantityComparator = new Comparator<Fruit>() {
public int compare(Fruit fruit1, Fruit fruit2) {
// ascending order
return fruit2.getQuantity() - fruit1.getQuantity();
// descending order
// return fruit1.getQuantity() - fruit2.getQuantity()
}
};
}
class Fruit {
private String fruitName;
private String fruitDesc;
private int quantity;
public Fruit(String fruitName, String fruitDesc, int quantity) {
super();
this.fruitName = fruitName;
this.fruitDesc = fruitDesc;
this.quantity = quantity;
}
public String getFruitName() {
return fruitName;
}
public void setFruitName(String fruitName) {
this.fruitName = fruitName;
}
public String getFruitDesc() {
return fruitDesc;
}
public void setFruitDesc(String fruitDesc) {
this.fruitDesc = fruitDesc;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
@Override
public String toString() {
return "Name=" + getFruitName() + ", Quantity=" + getQuantity();
}
}
Visited 4 times, 1 visit(s) today


