Gå til innhold

Legge til flere enn 1 nummer med HashMap


Anbefalte innlegg

Hei, jobber med et prosjekt hvor jeg skal opprette klasser for Abonnent, Produkt og Leverandør.. Abonnent skal inneholde diverse opplysninger om kunden og skal blant annet ha telefonnummer.. Så det jeg lurer på er hvordan jeg kan legge inn flere enn 1 telefonnummer på den kunden med HashMap.. Har gjort dette før med ArrayList men blir vell ikke helt det samme?

Det skal gjerne kunne splittes ved hjelp av ",".

Lenke til kommentar
Videoannonse
Annonse

Det enkleste må da være å lage to variabler.

int tlf1;

int tlf2;

 

HashMap<K, V> tlfnummer = new HashMap<K, V>();

Set iter = tlfnummer.keySet();
iter.iterator();

 

Der K er nøkkelen og V er verdi objektet, men HashMap er beregnet for å ha tusenvis av objekter, ikke 2-3. F.eks. et hashmap på 4-5000 objekter finner det du vil ganske raskt

Lenke til kommentar

public class Abonnent
{
private String kundeNr;
private String navn;
private String telefon;
private String epost;
private HashMap<String, Produkt> mineProdukter;

public Abonnent(String nr, String navn, String epost, String telefon)
{
	kundeNr = nr;
	this.navn = navn;
	this.epost = epost;
	this.telefon = telefon;
	mineProdukter = new HashMap<String, Produkt>();
}

 

Så om den skal inn i denne koden, hvordan skriver jeg det da?

Lenke til kommentar

Slik:

 

public class Abonnent
{
private String kundeNr;
private String navn;
private HashMap<String, ArrayList<String>> tlfnummer;
private String telefon;
private String epost;
private HashMap<String, Produkt> mineProdukter;

public Abonnent(String nr, String navn, String epost, String telefon){
	kundeNr = nr;
	this.navn = navn;
	this.epost = epost;
	setTlfnummer(telefon);

	mineProdukter = new HashMap<String, Produkt>();
	tlfnummer = new HashMap<String, ArrayList<String>>();
}

 

Resten orker/gidder jeg ikke å skrive, ikke nå iallefall. det er en god del kode som du må skrive ekstra. Lurest tror jeg at det ville ha vert å gi nøkkelen i hashmappen en string som du setter final på blandt deklarasjonene:

private final String mobilTlf = "mobil"; på den måten kan du enkelt finne ut om det er et mobilnr eller ikke. Pluss at du kan ha flere mobilnr/husnr under en Key

i et HashMap gjør det ingenting om det finnes like nøkkler

 

visuelt er dette noe sånt:

 

nøkkel = mobil, verdi = arraylist (liste av mobilnummer).

 

eks:

(ikke slik du kan gjøre det, men håper du forstår)

tlfnummer.put(mobilTlf, new ArrayList<String>().add("et nummer"));

 

du bør også ha en public List getAlleTlfNummer() for å liste ut alle på en gang.

 

gudd løkk

Lenke til kommentar
Hei, jobber med et prosjekt hvor jeg skal opprette klasser for Abonnent, Produkt og Leverandør.. Abonnent skal inneholde diverse opplysninger om kunden og skal blant annet ha telefonnummer.. Så det jeg lurer på er hvordan jeg kan legge inn flere enn 1 telefonnummer på den kunden med HashMap.. Har gjort dette før med ArrayList men blir vell ikke helt det samme?

Det skal gjerne kunne splittes ved hjelp av ",".

 

Det er jo bare å lagre telefonnumrene i en hashmap. Så kan nøkkelen være 'jobb', 'hjem', 'fax', etc.

 

Werner

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...