1661 Telefonbok

Varje kontakt sparas i telefonboken.

Kopiera koden nedan och spara i en klass med lämpligt namn i projektet med klassen Kontakt.

import java.util.ArrayList;
public class Telefonbok
{
  private ArrayList<Kontakt> kontakter;

  public Telefonbok()
  {
    kontakter = new ArrayList<Kontakt>();
  }

}

Lägg till kod enligt klassdiagrammet nedan.

Telefonbok

  • private ArrayList<Kontakt> kontakter
  1. public void läggTillKontakt(Kontakt kontakten)
  2. public void skrivUt()
  3. public int sökNummerFör(String namn)
  4. public String sökNamnFör(int nummer)

Metoden läggTillKontakt()

Ett objekt av klassen Kontakt läggs till i listan kontakter. Studera dokumentationen för klassen ArrayList. Leta upp metoden

boolean add(E e)

Den metoden ska användas.

Metoden skrivUt()

Metoden skriver ut alla kontakter i telefonboken. Ungefär såhär.

Ada, tel: 3
Beda, tel: 8

Tips! Slinga nedan går igenom var och en av objekten i listan kontakter.

for ( Kontakt kontakten: kontakter )
{
  //kontakten är först det första objektet i listan kontakter
  //nästa gång är det nästa objekt och så vidare
}

Metoden sökNummerFör()

Stega igenom listan med kontakter och kolla om bifogat namn stämmer överens med namnet i kontakten. Om så är fallet returnera kontaktens telefonnummer. Om namnet inte finns i listan så returneras -1.

Medoden sökNamnFör()

Stega igenom hela listan med kontakter och kolla om bifogat nummer stämmer överens med numret i kontakten. Om numret hittas returneras namnet på kontakten. Om däremot numret inte hittas returneras "saknas".

Om du önskar högra betyg - ta bort en kontakt

Om både namn och nummer stämmer tas kontakten bort.

For-slingan som vi har använt oss av tidigare för att stega igenom en lista kan inte användas då man ska ta bort en kontakt.

Nedan följer ett tips. Tänk dig att vi har en lista med några mynt i. Sedan vill vi ta bort alla som är klave. Koden för detta visas nedan. Studera dokumentationen för klassen Iterator. Be din lärare förklara det du inte förstår.

Mynt

  • sidaUpp
  • Random slumptalsgenerator
  1. String kasta()
  2. boolean ärKrona()
  3. boolean ärKlave()
ArrayList<Mynt> lista;
lista = new ArrayList<Mynt>();
for ( int i = 0; i < 10; ++i )
{
  Mynt slant = new Mynt();
  slant.kasta();
  lista.add(slant);
}
Iterator<Mynt> iterator = lista.iterator();
while ( stegare.hasNext() ) 
{
  Mynt slant = iterator.next();
  if ( slant.ärKlave() )
  {
    iterator.remove();
  }
}