Citat:
Ursprungligen postat av Eclair
Hej!
Jag kan Python sedan tidigare och hller nu p och lr mig java.
Det hr med listor eller s kallade arrays konfunderar mig dock. Jag har letat men fr det nd inte riktigt att funka s jag vnder mig nu till er.
Vad r motsvarande p java?
skapa lista:
lista = []
lgg till element i lista:
lista.append(i)
Kontrollera vad ett index i en lista har fr element:
x=lista[i]
Det jag har kikat p r s kallade ArrayList men vet inte om det r det jag ska anvnda? Mste man frdefiniera storleken p listorna i java?
Listor och arrayer beter sej olika i java, frmst med avseende p att det du refererar till som "listor" r datastrukturer fr att hlla objektreferenser, arrayer kan hlla objektreferenser men ven primitiver. De datastrukturer som kan hlla objektreferenser brukar normalt sett vara de som implementerar interfacet List<E>.
En array har en frdefinierad storlek vid initieringen av densamma, det ser ut sh till exempel:
Kod:
int[] someArray = new int[4];
vilket kommer ge dej en array som du kan referera till som someArray som kommer innehlla 4 poster, den kan aldrig innehlla mer n dessa 4 stycken.
En ArrayList r aningen mer flexibel nr det gller att hantera objektreferenser, gr iofs att stoppa i heltal i den med med tanke p att java numera har str fr auto(un)boxing. Dessutom har en ArrayList inte ett fixed antal platser, den kommer vxa och krympa allt eftersom du tar bort eller lgger till saker i den.
Eftersom ArrayList implementerar interfacet List<E> s lgger man till saker i den med metoden add. Kolla i java-apiet s ser du ju hur den ska se ut. En simpel initiering av en ArrayList med Strings ser ut shr:
Kod:
ArrayList<String> myList = new ArrayList<String>();
Hr sger vi att vi vill ha en ArrayList och vi sger ven att den endast kommer innehlla objektreferenser till String, den kommer inte kunna ngot annat. Frdelen med denna "genericitet" r att du slipper explicit typa om de Object-referenser den normalt sett skulle gett ifrn sej med get(int i)-metoden.
Arrayer anvnder sej av indexoperatorn som du redan sett fr tkomst till en specifik plats i arrayen, listor andra sidan anvnder metoden get() fr att lsa ut ett vrde frn en plats, dessutom finns det en set-metod som kan stta ett element p en valfri plats till en valfri objektreferens med. Det normala nr man jobbar med ArrayList IMHO r att man anvnder add fr att fylla p den i exempelvis en loop.