Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class Task6
- {
- public static void main(String[] args)
- {
- List<TelephoneEntry> addressList = new ArrayList<TelephoneEntry>();
- addressList.add(new Person("Bruno ", "Mars", new Address("Los Angeles", "Gold Street 1", new TelephoneNumber(48, 857845356))));
- TreeMap<TelephoneNumber, TelephoneEntry> addressBook = new TreeMap<TelephoneNumber, TelephoneEntry>();
- Iterator<TelephoneEntry> addressListIterator = addressList.iterator();
- while (addressListIterator.hasNext())
- {
- TelephoneEntry input = addressListIterator.next();
- addressBook.put(input.getAddress().getTeleNumber(), input);
- }
- for (Map.Entry<TelephoneNumber, TelephoneEntry> input : addressBook.entrySet())
- {
- System.out.println("Description: " + input.getKey().countryCode + "-" + input.getKey().localNumber + "\t" + input.getValue().description());
- }
- }
- }
- class TelephoneNumber implements Comparable<TelephoneNumber>
- {
- int countryCode;
- long localNumber;
- public TelephoneNumber(int countryCode, long localNumber)
- {
- this.countryCode = countryCode;
- this.localNumber = localNumber;
- }
- public int getCountryCode()
- {
- return countryCode;
- }
- public long getLocalNumber()
- {
- return localNumber;
- }
- public int compareTo(TelephoneNumber otherNumber) {
- int compare = (Integer.toString(countryCode)).compareTo(Integer.toString(otherNumber.countryCode));
- if (compare == 0){
- return (String.valueOf(localNumber)).compareTo(String.valueOf(otherNumber.localNumber));
- }
- return compare;
- }
- }
- abstract class TelephoneEntry
- {
- Address address;
- abstract Address getAddress();
- abstract String description();
- }
- class Address
- {
- String city;
- String street;
- TelephoneNumber teleNumber;
- public Address(String city, String street, TelephoneNumber teleNumber)
- {
- this.city = city;
- this.street = street;
- this.teleNumber = teleNumber;
- }
- public String getCity()
- {
- return city;
- }
- public String getStreet()
- {
- return street;
- }
- public TelephoneNumber getTeleNumber()
- {
- return teleNumber;
- }
- }
- class Company extends TelephoneEntry
- {
- String name;
- Address address;
- public Company(String name, Address address)
- {
- this.name = name;
- this.address = address;
- }
- public String description()
- {
- return (name + " " + address.getCity() + " " + address.getStreet());
- }
- public Address getAddress()
- {
- return address;
- }
- }
- class Person extends TelephoneEntry
- {
- String name;
- String lastName;
- Address address;
- public Person(String name, String lastName, Address address)
- {
- this.name = name;
- this.lastName = lastName;
- this.address = address;
- }
- public String description()
- {
- return (name + " " + lastName + " " + address.getCity() + " " + address.getStreet());
- }
- public Address getAddress()
- {
- return address;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement