Question: Have the Address class implement the Comparable interface. First compare the street name, then the house number. For example, 123 Main Street comes after 57
Have the Address class implement the Comparable interface. First compare the street name, then the house number. For example, 123 Main Street comes after 57 Main Street but before 1 State Street.
public class Address implements Comparable { private String street; private int houseNumber;
/** Constructs an address. @param aStreet the street name @param aHouseNumber the house number */ public Address(String aStreet, int aHouseNumber) { street = aStreet; houseNumber = aHouseNumber; }
public String toString() { return houseNumber + " " + street; }
/* Your code goes here */
}

import java.util.Arrays; public class Tester { public static void main(String[] args) { Address[] addresses = { new Address("Main Street", 123), new Address("Main Street", 57), new Address("Hollywood Ave", 11235) }; System.out.println(addresses[0].compareTo(addresses[0])); System.out.println("Expected: 0"); System.out.println(addresses[0].com reTo(addresses[1]) > 0) System.out.println("Expected: true"); System.out.println(addresses [1].compareTo(addresses [2]) 0); System.out.println("Expected: true"); System.out.println(addresses [2].compareTo(addresses[1]) > 0); System.out.println("Expected: false"); Arrays.sort (addresses); System.out.println(Arrays.toString(addresses)); System.out.println( "Expected: [11235 Hollywood Ave, 57 Main Street, 123 Main Street]"); } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
