Ignoring the equals() and hashcode() methods while performing object comparison

Consider the following Apex class:

global class DealInfo {     
    public Integer amount {get;set;} 
    public String amountCurrency {get;set;}  
} 

Now, we are in a situation where we need to sort a list of objects from the preceding class. Let's run the following anonymous code:

DealInfo o = new DealInfo(); 
o.amount = 200; 
o.amountCurrency = 'USD'; 
 
DealInfo o1 = new DealInfo(); 
o1.amount = 100; 
o1.amountCurrency = 'USD';  
List<DealInfo> lstDeals = new List<DealInfo>{o,o1}; 
lstDeals.sort(); 

If you are expecting the list to get sorted, then it's not so. We get the following error from Apex:

System.ListException: One or more of the items in this list is not Comparable. 

Salesforce already ...

Get Apex Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.