ArrayList

Tags:    java

Hej med jer,

I en skoleopgave er jeg blevet bedt om at lave:
A list of data organized as a resizable-array. Important operations:
- ArrayList() - construct a list object
- clear() - clear list.
- add() - add an element to list
- (Byte)get(index) - fetch an element from list

Da jeg kun har kodet i Java 3-4 gange og måske kan de grundlæggende ting, er jeg nu meget grøn på området. Jeg kan meget lidt C++ i forvejen, men er ikke en haj. Nogle forslag til hvordan jeg kunne gøre?

Jeg vil selvfølgelig starte med at lave en ArrayList som klasse og skal selvfølgelig bruge nogle constructors og metoder, men hvordan konstruere jeg en liste af objekter?

Fold kodeboks ind/udKode 


Men derefter er jeg ret blank :|

Hjælp Påskønnes!





3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato


Hej Henning,

- ArrayList() - construct a list object
Denne metode er constructoren. Lad den oprette et array på javas traditionelle måde med [], og en længde på 10.
Variabler: length = 0, maxlength = 10,
Metoden kan overloades, sådan at den også kan tage et argument, og argumentets type specificerer typen af objekter i listen.

- clear() - clear list.
Opretter et nyt array med lægde 10, og sætter nuværende array til at pege på dette nye array. length og maxlength sættes til 0 og 10 hhv.

- add() - add an element to list
if length+1 > maxlength
opret nyt array med plads til maxlength*2
for alle elementer i array
kopier til nye array
skift pointer fra gammel til nyt array
indsæt på length+1
length++


- (Byte)get(index) - fetch an element from list
return array[index]

Lidt pseudo kode, men held og lykke

Med venlig hilsen
Ieet





1000 tak for svar :D

Hvad mener du med at metoden kan "overloades"? og hvad er det nu lige et argument er?

Altså mener du f.eks:

Fold kodeboks ind/udKode 


Er lidt selv i tvivl om koden jeg har indsat.








Hej Henning,

Det at overloade en metode (funktion i java) betyder at man laver en metode med præcis det samme navn, og at denne blodt kaldes med noget andet. Det som en funktion/metode kaldes med kaldes argumentet.

Eksempelvis:

public int area(int x, int y) {
return x*y;
}
public double area(double x, double y) {
return x*y;
}

her er x og y argumenterne. Og Metoden area er overloaded fordi at den kan kaldes med 2 forskellige typer argument.

Med venlig hilsen
Ieet





t