Avatar billede madseksperten Nybegynder
20. september 2011 - 21:27 Der er 8 kommentarer og
2 løsninger

håber på hurtig svar ang collection

Hejsa.

Jeg sidder med en opgave om udvidede forløkker.

Der står i min bog:

"Collections giver mulighed for at opbevare mange objektreferencer i ét objekt".

Udvidet for-lkke bruges til at iterere over en collection, f.eks. en liste. Et eksempel kunne være, at man gerne ville udføre et stykke kode for hvert element i en liste. Den udvidede forløkke består af række elementer. En objektrefe-
rence til en collection af en bestemt type, en løbe-variabel og en række statements(sætninger), der skal udfres.

Den generelle form er:

1 for (type variabel : collection) {
2 statements
3 }

Spørgmålet er skal jeg betragte collections som et object, hvorfra man inde fra collection kan skrive kode til hvert under element i collection?

Hvad er i grunden en løbe variabel?

Mvh Mads
Avatar billede arne_v Ekspert
20. september 2011 - 21:36 #1
Det er vist et af de tilfaelde hvor fordanskning af engelske ord skaber mere forvirring end klarhed.

ArrayList<String> lst = new ArrayList<String>();

opretter et objekt af typen ArrayList som der kan gemmes andre objekter af typen String i.

ArrayList og forskellige andre typer som kan indeholde andre objekter kaldes under et for collections.

lst.add("A");
lst.add("BB");
lst.add("CCC");

gemmer 3 strenge i den ArrayList.

for(String s : lst) {
  System.out.println(s);
}

udskriver alle strengene.

Den skal laeses som: for hvert element i collection lst hent elementet ud i en String s og udfoer koden inden i {}.

I dette tilfaelde bare udskrive.
Avatar billede heinzdmx Nybegynder
20. september 2011 - 21:38 #2
En collection er en samling af objekter.

Et eksempel på en collection, er at du har 8 integers, disse vil du gerne have lagt sammen:

Given collection List<int> collection;

int total = 0;

for (int i : collection)
{
    total += i;
}

System.out.println("Total: " + total);


I ovenstående kode bliver hvert element løbet igennem og lagt til total (total += i; er en sammentrækning af total = total + i;)

Du kan også tilgå direkte et specifikt element:

collection.get(i);


Hvor i er placeringen i samlingen.

---

I det du har læst er løbe-variablen nok ment som:

for (int i =0; i < collection.size(); i++)
{
// gør hvad du vil
}


Her er i din løbe variable da den bestemmer hvor langt du er nået i din løkke
Avatar billede madseksperten Nybegynder
20. september 2011 - 21:55 #3
Hejsa.

Sådan er det jeg forstår det, er jeg helt forkert på den?

http://imageshack.us/f/854/imag1262.jpg/

håber på hurtig svar, skal nemlig snakke en lille smule om det imorgen til undervisning :-/

Mvh Mads
Avatar billede madseksperten Nybegynder
20. september 2011 - 21:56 #4
damm nogle hurtige svar i har givet. Tusind mange tak for det. Jeg har ikke engang kigget dem igennem, før jeg oprettet den sidste kommentar. Kigger dem lige igennem nu :-)
Avatar billede madseksperten Nybegynder
20. september 2011 - 22:28 #5
ok, måske er jeg ved at være lige med.

Hvad siger i til min illustration, er den rigtig? Jeg tænker bare at collection er inde i et objekt. Men er det omvendt, så objekter er inde i en collection?
Avatar billede heinzdmx Nybegynder
20. september 2011 - 22:32 #6
Objekter er inde i et objekt.

Du har et objekt som indeholde objekter som du kan hente.
Avatar billede arne_v Ekspert
20. september 2011 - 22:37 #7
Jeg ville maaske formuler det som at du har en referance til et objekt der indholder referancer til andre objekter.
Avatar billede madseksperten Nybegynder
21. september 2011 - 14:57 #8
Hejsa.

Min fremlæggelse gik rigtig fint. Mange tak for hjælpen, og ligger i ikke et svar :-)

Mvh Mads
Avatar billede arne_v Ekspert
21. september 2011 - 15:03 #9
svar

husk og vent paa heinz
Avatar billede heinzdmx Nybegynder
21. september 2011 - 15:36 #10
Svar her

Arne_v har dog skrevet på den rigtige måde omkring referencer. Du har ikke fat i objektet du har fat i en reference til hvilken adresse som objektet ligger på.
Du kan derfor nemt sende din reference videre til andre metoder og klasser der skulle kunne gøre brug af den.
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