2012-06-29 11 views
5

Ich habe zwei Arrays:kann ich für jede Verwendung für zwei gleich große Arrays

name[] and roll[] 

Gibt es eine Möglichkeit, beiden Arrays in einem für jede loop.Size zu durchqueren von beiden Arrays gleich bleiben.

Ich kenne zwei einzelnen Schleifen verwenden, können wir in einer Querung und infact auch seine keine große Sache, aber ich möchte etwas wie folgt aus:

for(String n:name,int r:roll){ 
    //blah blah 
} 

Bitte werfen etwas Licht Dank ..... Ankur

+2

Wert gelesen: [Die Spezifikation für die erweiterte 'for' Schleife] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2). Dies ist eine Situation, in der die altmodische, indexbasierte 'for'-Schleife stattdessen benötigt wird. –

Antwort

7

Nein, Sie müssen verwenden, um die altmodischen

for(int index = 0; index < name.length; index++) { 
    //blah blah with name[index] and roll[index] 
} 
+0

Frage ist für for-jeder Schleife nicht für einfache Schleife –

+1

Ich weiß, ich habe nur die (ziemlich offensichtlich) einzige Alternative hingewiesen. Bearbeitet, um das klarer zu machen. – Keppil

4

Nein. Sie können nicht zwei Arrays gleicher Größe mit einer einzelnen for-each Schleife durchlaufen.

Wenn Sie beide Array in einer Schleife zu durchlaufen wollen, dann werden Sie traditionelle Java for Schleife

+0

Haben Sie keine numerischen indizierten Arrays in Java? – PeeHaa

+0

@PeeHaa: Natürlich hat Java Index Zugriff auf Arrays, aber der Fragesteller fragte speziell nach der erweiterten 'for' Schleife (" für jeden "). –

+0

K tnx (Ich bin ein PHP-Typ). Wäre es nicht immer noch möglich, wenn beide Arrays null indiziert sind? – PeeHaa

2
for(int i=0,len=name.length; i<len; i++) { 
    String n = name[i]; 
    int r = roll[i]; 
} 
2

Die verwenden müssen for...each Schleife legt den Index nicht (absichtlich, eigentlich hat es nicht einmal). Sie könnten Ihren eigenen Index verwenden, wenn Sie wirklich darauf bedacht sind, aber Sie wären besser dran, die gute alte for-Schleife mit einem Index zu verwenden.

Hier ist, wie Sie es mit Ihrem eigenen Index tun würde:

{ 
    int index = 0; 
    for(String name : names) { 
     // roll[index]; 
     ++index 
    } 
} 

Siehe auch this Antwort.

+1

Beispiel dafür, warum dies fehleranfällig ist und warum wir die erweiterte foreach brauchen! Sie haben index und i benutzt - es ist die Art von Fehler, die ich mache. –

+0

Guter Fang! Zumindest würde der Compiler uns hier helfen (ich tippte die Antwort auf mein Handy). – Jeshurun

Verwandte Themen