public class ApartmentOwner { private String owner; private String[] apartments; public ApartmentOwner(String owner) { this.owner = owner; apartments = new String[10]; } public String getOwner() { return owner; } public String getApartment(int slot) { return apartments[slot]; } public void setApartment(String address, int slot) { apartments[slot] = address; } public int countApartments() { int num = 0; for (int i = 0; i < 10; i++) if (apartments[i] != null) num ++; return num; } public void reorganizeApartments() { int empty = -1; // index of the first empty slot for (int i = 0; i < 10; i++) { if (apartments[i] == null && empty == -1) empty = i; if (apartments[i] != null && empty != -1) { apartments[empty] = apartments[i]; apartments[i] = null; empty++; } } } public String toString() { String ris = ""; ris += "Owner: " + owner; for (int i = 0; i < 10; i++) if (apartments[i] != null) ris += "\nApartment " + i + ": " + apartments[i]; return ris; } }
Example of usage:
public class TestApartmentOwner { public static void main (String[] args) { ApartmentOwner p = new ApartmentOwner("Mario Rossi"); p.setApartment("Via della Camilluccia, 29", 0); p.setApartment("Largo di Torre Argentina, 42", 1); p.setApartment("P.zza Conca D'Oro, 9", 2); p.setApartment("Via del Corso, 30", 5); p.setApartment("Via Trionfale, 2500", 8); System.out.println(p); System.out.println(); System.out.println(p.getOwner() + " has " + p.countApartments() + " apartments"); System.out.println("Apartment 2: " + p.getApartment(2)); System.out.println(); p.reorganizeApartments(); System.out.println(p); } }