Avatar billede steffenbach Nybegynder
04. oktober 2001 - 17:58 Der er 9 kommentarer og
1 løsning

Array af størelse BigInteger ?

Hej
Jeg vil gerne lave et array eller lignende, der indeholder BigInteger\'s (dette er ikke svært), men som også har størelse BigInteger, altså kan rumme virkårligt mange BigIntegers. Hvordan gør jeg det? [Jeg ved godt at jeg får problemer med lagerplads osv. hvis jeg laver et virkeligt stort array]
Avatar billede lbhansen Nybegynder
04. oktober 2001 - 18:12 #1
arrays størrelser initialiseres med en int. Dvs. at den maks kan indeholde Integer.MAX_VALUE elementer.

Hvis du skal flere elementer, skal du fx gemme dem i en LinkedList.
Avatar billede erikjacobsen Ekspert
04. oktober 2001 - 22:16 #2
Du skal nu nok bruge en Map, f.x en HashMap - hvis jeg forstår dig ret
kan du ikke rimeligvis gøre det med et array.
Avatar billede disky Nybegynder
05. oktober 2001 - 08:46 #3
Når du siger størrelse BigInteger, mener du så der skal kunne være ligeså mange elementer som et BigInteger max kan være ? (det er ret mange)
Avatar billede carstenknudsen Nybegynder
05. oktober 2001 - 09:30 #4
Som du skriver er det ikke påkrævet at løsningen skal
være et array.  Derfor er det nemmeste at lave en
liste, f.eks. en ArrayList der kan indeholde vilkårlige
objekter og derfor specielt BigInteger objekttype.  Fordelen
ved lister er at de ændrer størrelse dynamisk og at du ikke
skal bekymre dig om allokering af hukommelse.  Det vil
være et forfærdeligt spild af hukommelse hvis du laver
et array.
Avatar billede disky Nybegynder
05. oktober 2001 - 12:22 #5
Carsten, husk der er meget fornuftigt at allokere en ArrayList der er stor nok per default.

Da en ArrayList fordobler sin størrelse hvis de bliver for fuldt. Derved kan du opnå et meget stort spild af hukommelse.
Avatar billede carstenknudsen Nybegynder
05. oktober 2001 - 12:50 #6
disky: Ja, det er god ide at sørge for at der nogenlunde
så meget plads som man har brug for.  Det er dog ikke
helt rigtigt at en ArrayList fordobler sin størrelse, det
er et implementeringsspørgsmål idet kontrakten for
ArrayList ikke stiller nogle krav.  Det er muligt at
den nuværende version benytter en fordobling, men
det kan man ikke være sikker på.  Bortset fra det er
jeg bange for at spørgsmålet ikke er helt veldefineret,
men det er ofte svært at stille et konkret spørgsmål.
Avatar billede disky Nybegynder
05. oktober 2001 - 12:54 #7
netop og fordi man ikke ved hvad der sker, gør man klogt i at lave listen stor nok fra starten, hvis man bare har et kvalificeret gæt.
Avatar billede steffenbach Nybegynder
05. oktober 2001 - 12:59 #8
For at praeciserer mit spoergsmaal: Jeg har brug for et agregat (array, list, map ovs.) der gemmer mine BigIntegers, numererer dem, saa jeg ved hvad nr. et givent tal har i listen, OG!!! mit array (list, map osv) skal kunne rumme vilkaarligt mange tal.
Avatar billede disky Nybegynder
05. oktober 2001 - 13:01 #9
Et java collection object er dynamisk, altså kan det rumme et vilkårligt antal tal.

Og nummereringen ordner du helt selv.

f.eks ved brug af en HashMap.

Key = en tæller
Value = big integer.
Avatar billede erikjacobsen Ekspert
05. oktober 2001 - 13:13 #10
Hvad med en ArrayList? Der er vel ingen grund til selv at hold styr på indexet.
Jeg havde forstået at man skulle kunne slå op i listen med en BigInteger, men
nu mener jeg at læse, at de bare skal have \"små\" numre, startende fra 1.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester