28. Object sorting Example using Comparable and Comparator - prabhatrocks07/Core-Java-Programming GitHub Wiki

public class ObjectSortingExample {

public static void main(String[] args) {
	Order ord1 = new Order(101, 2000, "Sony");
	Order ord2 = new Order(102, 3000, "Hitachi");
	Order ord3 = new Order(103, 4000, "Philips");
	
	List<Order> orders = new ArrayList<Order>();
	orders.add(ord3);
	orders.add(ord1);
	orders.add(ord2);
	
	System.out.println("Unsorted Collection : " + orders);
	
	Collections.sort(orders);
	System.out.println("Listf Order object sorted in natural order : " + orders);
	
	Collections.sort(orders, new Order.OrderByAmount());
	System.out.println("Listf Order object sorted using comparator - by amount : " + orders);
	
	Collections.sort(orders, new Order.OrderByCustomer());
	System.out.println("Listf Order object sorted using comparator - by customer : " + orders);
}

}

class Order implements Comparable<Order> {

private int orderId;
private double amount;
private String customer;


public Order(int orderId, double amount, String customer) {
	this.orderId = orderId;
	this.amount = amount;
	this.customer = customer;
}

public int getOrderId() {
	return orderId;
}

public void setOrderId(int orderId) {
	this.orderId = orderId;
}

public double getAmount() {
	return amount;
}

public void setAmount(double amount) {
	this.amount = amount;
}

public String getCustomer() {
	return customer;
}

public void setCustomer(String customer) {
	this.customer = customer;
}

public static class OrderByAmount implements Comparator<Order> {

	@Override
	public int compare(Order o1, Order o2) {
		return o1.amount > o2.amount ? 1 : (o1.amount < o2.amount ? -1 : 0);
	}
	
}

public static class OrderByCustomer implements Comparator<Order> {

	@Override
	public int compare(Order o1, Order o2) {
		return o1.customer.compareTo(o2.customer);
	}
	
}

@Override
public int compareTo(Order o) {
	return this.orderId > o.orderId ? 1 : (this.orderId < o.orderId ? -1 : 0);
}

@Override
public String toString() {
	return String.valueOf(orderId);
}
}
⚠️ **GitHub.com Fallback** ⚠️