Verktyg Visningsval
2013-05-16, 17:16   #1

That Maniac

Medlem

Registrerad: aug 2012

Java problem (arraylist)


Löst problem. Mod kan ta bort tråden.

Senast redigerad av That Maniac 2013-05-16 klockan 17:26.
That Maniac är inte uppkopplad
2013-05-16, 17:32   #2

Bruum

Medlem

Registrerad: okt 2011

Citat:
Ursprungligen inskrivet av That Maniac Visa inlägg
Hej!
ArrayList<ArrayList<Card>> List = new Arraylist<>();
Men detta fungerar inte när jag ska skriva över de gamla med:
Deck = List.get(0);

Din ArrayList med referensen List innehåller ArrayList-objekt, dvs din lista innehåller listor. De listorna innehåller i sin tur Card objekt. Nu vet jag inte riktigt vad det är du är ute efter men om du vill hämta den första listan och sedan hämta det första kortet i den listan kan du göra såhär:

ArrayList<Card> cardList = List.get(0);
Deck = cardList.get(0);

eller bara mer kortfattat
Deck = list.get(0).get(0);

Sen vet jag inte riktigt var du är ute efter, om dina listor ska innehålla tidigare stadier av spelet kanske en kö är bättre?

För att till fullo förstå dessa listorna kan det vara bra att lära dig lite om datastrukturerna bakom. De mest basic är ArrayList som är byggt på arrays, men väldigt användbara är LinkedList som är byggt på en länkad lista (referenslänkar). För lite mer avancerad programmering eller om du bara behöver hantera många objekt kan strukturer så som heapar, träd, köer, hashtabeller osv vara till hjälp. Här kommer en liten lista till hjälp
HashSet/Map snabb insättning/uttagning och sökning
TreeSet/Map alltid sorterad
ArrayList/Linkedlist lätta att förstå och använda men långsamma på det mesta
Köer, snabba att sätta in i början/slutet
osv..

Hoppas det var till någon hjälp


EDIT: Såg att du löst problemet och att du vill att inlägget ska tas bort, men det är bättre ifall det är kvar och du skriver hur du löste det så att andra med samma eller liknande problem kan hitta hjälp istället för att själva behöva fråga och vänta på svar
Bruum är inte uppkopplad
2013-05-19, 01:44   #3

That Maniac

Medlem

Registrerad: aug 2012

Updatering: Jag insåg att det jag lägger i listan som innehåller de andra listorna uppdateras i och med att de andra listorna gör det. Har ännu inte hittat en lösning på hur jag kan spara äldre instanser av listorna som jag sedan kan läsa ifrån och skriva över nya listor med. Jag har dock valt att strunta i den funktionen.
That Maniac är inte uppkopplad
2013-05-19, 02:12   #4

lollol7

Medlem

lollol7s avatar

Plats: Vid datorn

Registrerad: aug 2006

Citat:
Ursprungligen inskrivet av That Maniac Visa inlägg
Updatering: Jag insåg att det jag lägger i listan som innehåller de andra listorna uppdateras i och med att de andra listorna gör det. Har ännu inte hittat en lösning på hur jag kan spara äldre instanser av listorna som jag sedan kan läsa ifrån och skriva över nya listor med. Jag har dock valt att strunta i den funktionen.
Ska du spara älder instanser av listorna får du göra en funktion som kopierar över listan alltså en
public Arraylist copy(Arraylist from){
     Arraylist new = new Arraylist();
      for(int x = 0; x<from.length(); x++){
            temp = from.get(x);
            new.add(temp);
     }
return new;
}
Koden är väldigt dåligt skriven och funkar säkert inte utan är bara för att visa hur du kan göra för att kopiera en array istället för att referera till den. Tror dett finns något "addAll" kommando också för listor som då tar alla element i en mängt och lägger till.
__________________
In the end what separates a man from a slave?
Money? Power? No... A man chooses, a slave obeys.
ITX Gaming = ASRock H77M-ITX|| Intel Core i7 2600k @ 3,8GHz ||8GB 1600MHz Corsair RAM || PowerColor AMD 280X 3GB || Sugo SG05B || 2x Intel 120GB 330 RAID 0 || Corsair H60 || Accelero S1 rev.2 || 3x BenQ 24" |||| Asus Zenbook UX32VD
lollol7 är inte uppkopplad
2013-05-19, 02:27   #5

That Maniac

Medlem

Registrerad: aug 2012

Citat:
Ursprungligen inskrivet av lollol7 Visa inlägg
Ska du spara älder instanser av listorna får du göra en funktion som kopierar över listan alltså en
public Arraylist copy(Arraylist from){
     Arraylist new = new Arraylist();
      for(int x = 0; x<from.length(); x++){
            temp = from.get(x);
            new.add(temp);
     }
return new;
}
Koden är väldigt dåligt skriven och funkar säkert inte utan är bara för att visa hur du kan göra för att kopiera en array istället för att referera till den. Tror dett finns något "addAll" kommando också för listor som då tar alla element i en mängt och lägger till.
Saken är den att i kortspelet som jag gör så har jag ungefär 13 arraylists. Och jag vill säkert ha flera kopior, så det blir många listor att skapa. Därför valde jag att strunta i detta just nu. Det är inget super-seriöst spel jag håller på med, bara för att det är kul
That Maniac är inte uppkopplad
2013-05-19, 02:27   #6

swehunter2000

Medlem

swehunter2000s avatar

Plats: östersund

Registrerad: jan 2011

Citat:
Ursprungligen inskrivet av That Maniac Visa inlägg
Löst problem. Mod kan ta bort tråden.
Snälla, behåll det du skrev så att andra i framtiden också kan lösa sina problem.
__________________
CPU: I7 4770k Noctua DH-14 MOBO: Maximus VI Hero GPU: Nvidia 780 RAM: 16 GB Corsair RAM 1600 MHz SSD: Corsair force GT 120 GB, OC Agility 3 120 GB HDD: Samsung 1TB, WD 2TB Chassi: R4 PSU: Corsair AX860 Ljud: Asus Xonar D2X Hörlurar: AKG K 240 MK II Högtalare: Logitech X-530 Mus: Logitech G500s Matta: Steelseries QcK Mini Skärmar: en BenQ 22' och en Samsung 19'. V.v. citera mig för att få svar.
swehunter2000 är inte uppkopplad
2013-05-20, 20:33   #7

saddam

Avstängd

Plats: Sthlm

Registrerad: nov 2008

Citat:
Ursprungligen inskrivet av swehunter2000 Visa inlägg
Snälla, behåll det du skrev så att andra i framtiden också kan lösa sina problem.
Visst är det irriterande? Jag blir irriterad när de skriver "jag löste det" och sen får man inte veta hur de gjorde. Asjobbigt när man googlar runt och har exakt samma fråga.
saddam är inte uppkopplad
Senaste nyheterna

Redaktionens senaste nyhetsrubriker