---
title: "Sätta en array med foreach"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/177065-sätta-en-array-med-foreach"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "erciz"
published: "2009-02-22T11:59:05.000Z"
updated: "2009-02-26T17:31:59.000Z"
replies: 4
views: 620
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/177065-sätta-en-array-med-foreach"
---

# Sätta en array med foreach

## #1 — erciz, 2009-02-22T11:59Z

Jag gillar den nya foreach-konstruktionen.

Men om jag har förstått det rätt så går det bra att iterera över en array och läsa av den, men inte tvärtom att sätta den. För det fungerar inte för mig.

```
String[] suf = new String[tok.countTokens()];
for(String s : suf){
    s = tok.nextToken();	
}
```

Utan foreach funkar det bra:

```
String[] suf = new String[tok.countTokens()];
for(int i = 0; i<suf.length; i++){
    suf[i] = tok.nextToken();	
}
```

Permalänk: https://www.webforum.nu/p/177065

## #2 — SPiN, 2009-02-26T08:32Z

Det fungerar inte riktigt så... När du kör en foreach-loop kopieras värdet från aktuellt index till den forsats-lokala variabeln s, så även om värdet på s ändras kommer inte värdet i arrayen att ändras.

Följande går ju bra:

```
String[] suf = new String[tok.countTokens()];
int counter = 0;
for (String s : suf) {
    suf[counter++] = tok.nextToken();
}
```

Permalänk: https://www.webforum.nu/p/2173481

## #3 — spango, 2009-02-26T09:11Z

... men däremot är det ett missbruk av konstruktionen att göra så, foreach ska bara användas för att läsa. Använd den vanliga for-varianten istället.

Permalänk: https://www.webforum.nu/p/2173485

## #4 — SPiN, 2009-02-26T09:25Z

Hehe, helt riktigt. Jag menade inte att det var ett bra sätt - enbart att det fungerar. ;)

Permalänk: https://www.webforum.nu/p/2173486

## #5 — erciz, 2009-02-26T17:31Z

Jag har fått koll på det nu. Tack både SPiN och spango!

Permalänk: https://www.webforum.nu/p/2173538

---

Tråden på webben: https://www.webforum.nu/amne/java/177065-sätta-en-array-med-foreach
