30. juli 2002 - 20:31Der er
10 kommentarer og 1 løsning
Udskrivning af HashMap værdier
Hej Jeg er ved at lave et bogarkiv. I et bog objekt har jeg værdierne navn, forfatter, isbn, udgivelesesår og sideantal Jeg vil gerne lave en metode så når man har indtastet et isbn nummer skal der vises resten af værdierne på skærmen. hvordan skal jeg gribe det an ? Zhy
lige en ting til.... som egentlig var spørgsmålet :0) hvordan udskriver jeg bogens værdier ? altså selve udskrivningen på skærmen, kan jeg bare bruge en masse System.out.println() ? f. eks. System.out.println(forfatter);
private String udgivelesesaar=""; private String isbn =""; private String navn =""; private String sideantal=""; private String forfatter="";
public String getUdgivelesesaar() { return udgivelesesaar; }
public void setUdgivelesesaar(String udgivelesesaar) { this.udgivelesesaar = udgivelesesaar; }
public String getSideantal() { return sideantal; }
public void setSideantal(String sideantal) { this.sideantal = sideantal; }
public String getNavn() { return navn; }
public void setNavn(String navn) { this.navn = navn; }
public String getIsbn() { return isbn; }
public void setIsbn(String isbn) { this.isbn = isbn; }
public String getForfatter() { return forfatter; }
public void setForfatter(String forfatter) { this.forfatter = forfatter; }
//test public static void main(String[] args) {
Vector v = new Vector();
Bog bog = new Bog(); bog.setForfatter("mig"); bog.setIsbn("141516551"); bog.setNavn("java"); bog.setSideantal("559"); bog.setUdgivelesesaar("2002");
Bog bog2 = new Bog(); bog2.setForfatter("dig"); bog2.setIsbn("141515551"); bog2.setNavn("java2"); bog2.setSideantal("665"); bog2.setUdgivelesesaar("2000");
v.add(bog); v.add(bog2);
//selv søgningen for (int i = 0; i < v.size(); i++) { Bog b = (Bog)v.elementAt(i); if (b.getIsbn().equals("141516551")) { System.out.println("navn :" + b.getNavn()); System.out.println("isbn :" + b.getIsbn()); System.out.println("forfatter :" + b.getForfatter()); System.out.println("sideantal :" + b.getSideantal()); System.out.println("udgivelseår :" + b.getUdgivelesesaar()); } }
I stedet for at bruge en Vector - som ikke er særligt brugbart i denne sammenhæng, så gør følgende
---- FIL : BogArkiv.java
import java.util.*;
class BogArkiv { public static void main(String[] args) { HashMap arkiv = new HashMap();
// opret og gem nogle bøger (2 stk.) Bog bog = new Bog("Java for begyndere", "Søren Munk Skrøder", "1243-43-44"); arkiv.put(bog.getISBN(), bog); bog = new Bog("Java - den videre rejse", "Søren Munk Skrøder", "1243-43-45"); arkiv.put(bog.getISBN(), bog);
// hent en bog frem, via ISBN nummer Bog hentetBog = (Bog)arkiv.get("1243-43-44");
// udskriv bogens data til Sys.Out - Det kunne også være til en eller // anden GUI System.out.println(" TITEL : "+hentetBog.getTitel()); System.out.println(" FORFATTER : "+hentetBog.getForfatter()); System.out.println(" ISBN : "+hentetBog.getISBN()); } }
---- FIL : Bog.java
class Bog { private String titel; private String forfatter; private String isbn;
r9 >> Jeg vil kraftigt fraråde, at lave søgning på den måde, som dit indlæg foreslår --- Hvis du har 100.000 bøger/materialer i biblioteket (ikke usædvaligt for et mellemstort bibliotek), vil der gennemsnitligt skulle gennemløbes 50.000 materialer, før den rette bliver fundet... -- Det tager tid!
Jeg har lige forsøgt at oprette 100000 af dine bogobjekter. Det tager ca. 50 ms. at finde en bestemt med et HashMap.
Samme eksempel med en Vector tager det ca. 250 ms. Så noget har det da at sige.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.