Programutvikling V2015 — øvingsoppgaver for uke 11
Oppgave 1
I denne oppgaven skal du programmere dine egne generiske klasser.
Gitt interfacet:
import java.util.*;
public interface Samling < E >
{
void settInn( E e );
boolean flereElementer();
boolean inneholder(E e);
boolean fjern( E e);
Iterator iterator();
}
Du får nå i oppgave å programmere klassen MinListe
som skal implementere dette interfacet.
Klassen har to private klasser, Node
og MinIterator
.
Nedefor ser du en skisse av klassen:
import java.util.*;
public class MinListe < E > implements Samling
{
private class Node < E >
{
private E element;
Node neste;
public Node( E e )
{
element = e;
neste = null;
}
public E getElement()
{
return element;
}
public String toString()
{
return element.toString();
}
} // end of class Node
private Node første;
< Implementer interfacet Samling. Til dette kan du bruke
metoder fra den private klassen MinIterator. >
public String toString()
{
< ... >
}
private class MinIterator < E > implements Iterator < E >
{
< Klassen skal implementere interfacet Iterator,
dvs. metodene:
boolean hasNext();
E next();
void remove(); >
}// end of MinIterator
} // end of MinListe
Erstatt pseudo-koden med java-kode.
For å få testet ut metodene kan du bruke utgangspunkt klassen Person
:
public class Person
{
private String fornavn, etternavn;
// NB! Ingen neste-peker
public Person( String f, String n )
{
fornavn = f;
etternavn = n;
}
public String getEtternavn()
{
return etternavn;
}
public String getFornavn()
{
return fornavn;
}
public String toString()
{
return etternavn + ", " + fornavn;
}
public boolean equals( Object p )
{
return ((Person)p).getEtternavn().equals( etternavn ) &&
((Person)p).getFornavn().equals( fornavn ) ;
}
} // end of class Person
Det vil også lette programmeringsarbeidet kan du ta utgangspunkt i, og modifisere, klassen
Persontester slik at den passer til ditt program.
(Klassen er hentet fra
Personsorterings-eksempelet.
I tillegg må du legge til en driver-klasse.
Oppgave 2
I Personsorterings-eksempelet
er det brukt LinkedList
til å lagre Person
-objektene i en liste.
Du skal nå forandre dette programmet slik at du istedenfor lagrer Person-objektene i en TreeSet
-mengde
Du skal holde mengden sortert etter regler for norske forhold, men
du vil nå ikke lenger trenge noen sort-metode for å få dette til.
Løsningsforslag
Oppgave 1
Person.java
Samling.java
MinListe.java
MinListeTest.java
Oppgave 2
Person.java
Personmengde.java
Personsammenlikner.java
Persontester.java
Personapplikasjon.java