• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Frage nach eventuellem syntaktischen Zucker bei der Konkatenation von ArrayLists

pkm

pkm

Bekanntes Mitglied
Wenn über ein Stringarray iteriert wird, lässt sich bei der Iteration über diesen locker jeder einzelne String auslesen. Wenn man nun einen Resultstring hat (sagen wir String res = "";), dann kann man jeden einzelnen String, der bei der Iteration über das Array ausgelesen wird, wie folgt an diesen String res dranhängen:

res += foo;

usw.

Wenn ich nun eine ArrayList have, welche aus ArrayLists besteht, und ich über diese iteriere:

Java:
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

 ArrayList<String> res = new ArrayList<>();
        
 
 ArrayList<ArrayList<String>> auxiliary = new ArrayList<ArrayList<String>>;
 
 
      ArrayList<String> al1 = new ArrayList<>();
      al1.add("foo");
      al1.add("bar");
      al1.add("test");
      
      
      ArrayList<String> al2 = new ArrayList<>();
      al2.add("foo");
      al2.add("test");
      al2.add("test");
      
      ArrayList<String> al3 = new ArrayList<>();
      al3.add("foo");
      al3.add("bar");
      al3.add("test");
      
      auxiliary.add(al1);  auxiliary.add(al2);  auxiliary.add(al3);
    
      for(int i=0;i<auxiliary.size();i++) {
         res+=res.addAll(auxiliary.get(i)); // -> Das geht nicht.
         //Gibt es eine Möglichkeit (ohne iteration / for-Schleife usw., um res jedesmal JEWEILS um auxiliary.get(i) zu erweitern? 
      }
           }
         
    }

... gibt es da einen syntaktischen Zucker, wie ich eine ArrayList mit dem Inhalt der jeweils bei der Iteration ausgelesenen ArrayLists erweitern lässt? Vielleicht hat jemand in diesem Forum schon einmal so etwas bewerkstelligt, daher poste ich mein Ansinnen mal hier ins Forum; bislang habe ich noch keinen eleganten Weg gefunden :)

All best
pkm
 
temi

temi

Top Contributor
Java:
for (var list : auxiliary) {
    res.addAll(list);
}

Dein Code funktionert auch, du musst nur res+= weglassen, denn res.addAll() hängt ja schon die gesamte Liste an res an.
 
Zuletzt bearbeitet:
temi

temi

Top Contributor
Oder syntaktisch noch etwas mehr gezuckert:
Java:
auxiliary.forEach(res::addAll);
 
pkm

pkm

Bekanntes Mitglied
Java:
        public static ArrayList<Node> getAllChildrenOfNode(Node node, ArrayList<Node> res){
                
                //node ist der Knoten, dessen Kinder ich haben will.
                
                 if(!node.hasChildNodes()){
                    
                    //... wenn er keine Kinder hat, soll er den Knoten zurückgeben.
                     return res;
                    
                 } else{
                                      
                       NodeList nl = node.getChildNodes();
                      
                      //Ansonsten will ich über dessen unmittelbare Kinder iterieren.
                       for(int j=0;j<nl.getLength();j++) {
                        
                         //Wenn es keine Kindknoten gibt, dann will ich kinderlose Knoten einer ArrayList<Node> hinzufügen, die ich dann
                         // returnen will.                         
                           if(!nl.item(j).hasChildNodes()) {
                                  res.add(nl.item(j));
                          
                           } else {
                              
                           //... und wenn ich hier eine Rekursion basteln will, geht es irgendwie schief.       
                                res.addAll(getAllChildrenOfNode(nl.item(j),  res));
                                return res;
                           }                           
                       }
                   //return res;
                 }
               }
 
pkm

pkm

Bekanntes Mitglied
Java:
        public static ArrayList<Node> getAllChildrenOfNode(Node node, ArrayList<Node> res){
               
                //node ist der Knoten, dessen Kinder ich haben will.
               
                 if(!node.hasChildNodes()){
                   
                    //... wenn er keine Kinder hat, soll er den Knoten zurückgeben.
                     return res;
                   
                 } else{
                                     
                       NodeList nl = node.getChildNodes();
                     
                      //Ansonsten will ich über dessen unmittelbare Kinder iterieren.
                       for(int j=0;j<nl.getLength();j++) {
                       
                         //Wenn es keine Kindknoten gibt, dann will ich kinderlose Knoten einer ArrayList<Node> hinzufügen, die ich dann
                         // returnen will.                        
                           if(!nl.item(j).hasChildNodes()) {
                                  res.add(nl.item(j));
                         
                           } else {
                             
                           //... und wenn ich hier eine Rekursion basteln will, geht es irgendwie schief.      
                                res.addAll(getAllChildrenOfNode(nl.item(j),  res));
                                return res;
                           }                          
                       }
                   //return res;
                 }
               }
... ich habe es nun so gelöst, scheint zu tun:

Java:
        private static ArrayList<Node> extractChildNodes(ArrayList<Node> allChildren, NodeList nl) {
            Node n = null;
                for(int k=0;k<nl.getLength();k++){

                    n = nl.item(k);
                    if(!n.hasChildNodes()) {
                    
                        allChildren.add(n);
                    
                    } else {
                        
                        while(n.getFirstChild() != null) {
                            allChildren.add(n);   
                            n = n.getFirstChild();
                        }
                    }
                    
                 }
                
                return allChildren;
        }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
M Frage-Antwortspiel wie Wer wird Millionär Allgemeine Java-Themen 1
F Frage zu System.in Allgemeine Java-Themen 3
marcooooo Frage zum Beispiel im Anhang Allgemeine Java-Themen 16
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
B For-Loop Frage Allgemeine Java-Themen 21
L Java frage Allgemeine Java-Themen 3
bueseb84 Frage zu Mock und UpperBound Allgemeine Java-Themen 2
M Frage zum Konstruktor Allgemeine Java-Themen 2
W Best Practice Frage zur Umsetzung MVC Allgemeine Java-Themen 9
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
B Frage zu Unit-Tests Allgemeine Java-Themen 6
T Allgemeine Frage: GUI für 3D-Visualisierung Allgemeine Java-Themen 5
R Allgemeine Frage zu RMI bei MVC Allgemeine Java-Themen 2
O Frage zum Runtimeverhalten von Java ... Allgemeine Java-Themen 2
H Rundreise frage (Algorithmus) Allgemeine Java-Themen 18
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
D Frage zu Vererbung Allgemeine Java-Themen 5
J Frage zu regulärem Ausdruck Allgemeine Java-Themen 2
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
S Frage zur JLS Allgemeine Java-Themen 0
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
A Methoden Allgemeine Java Frage Allgemeine Java-Themen 3
E String Frage Allgemeine Java-Themen 9
I bin neu bei GitHub, Frage zur Sicherheit Allgemeine Java-Themen 14
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
C KeyListener Frage Allgemeine Java-Themen 3
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
R Konstanten initialisieren - FRAGE Allgemeine Java-Themen 3
MTJ004 FTP Frage zu FTP Speicherung Java-Android-FTP Allgemeine Java-Themen 5
J Frage zum Entwurf / json-Datenmodell Allgemeine Java-Themen 8
A Frage zu meinem Code Allgemeine Java-Themen 2
RalleYTN Classpath Nur ne kleine Frage zur MANIFEST.MF Allgemeine Java-Themen 4
T Frage zu Access Modifiers Allgemeine Java-Themen 6
W Input/Output Frage zu pdfbox und FileUtils Allgemeine Java-Themen 2
O Frage zur Implementierungsweise Allgemeine Java-Themen 4
B Frage zu Bitshift Allgemeine Java-Themen 3
J Java Zufallsgenerator (6 aus 49) Frage Allgemeine Java-Themen 7
L Frage zu RIA und GWT Allgemeine Java-Themen 0
P Concurrency Frage Allgemeine Java-Themen 8
M Frage zu Enumerations Allgemeine Java-Themen 2
F Unlimited Strength Policy. Frage Verbreitung der Anwendung Allgemeine Java-Themen 1
F Frage zur Library JTS Allgemeine Java-Themen 5
S Java Design Frage Allgemeine Java-Themen 10
E Reflection? Frage Allgemeine Java-Themen 4
C FileInputStream frage Allgemeine Java-Themen 6
G Polymorphie Programmdesign Frage Allgemeine Java-Themen 20
Uzi21 Frage zu NetBeans ( Console) Allgemeine Java-Themen 11
D Classpath Frage zum Java Resource Loading Allgemeine Java-Themen 2
G Frage zu JPA Allgemeine Java-Themen 1
S Methoden Frage Allgemeine Java-Themen 2
P MVC - Frage zu Model Allgemeine Java-Themen 4
K Frage zu Locks Allgemeine Java-Themen 1
S Frage zu abstract Allgemeine Java-Themen 5
M ArrayList<String> Frage Allgemeine Java-Themen 7
M OOP Design Frage Allgemeine Java-Themen 2
N Frage zur while-Schleife Allgemeine Java-Themen 18
T Best Practice Auslesen von Zeichenketten (Frage, Antworten, usw) Allgemeine Java-Themen 4
C Eine Frage zur Bearbeitungszeit Allgemeine Java-Themen 8
H Frage wegen Heap-Speicher Allgemeine Java-Themen 2
T Garbage Collection Frage Allgemeine Java-Themen 15
P Kurze Frage: aus einer File die Zeilenanzahl auslesen Allgemeine Java-Themen 9
D Frage zu Java und Umlauten / charsets Allgemeine Java-Themen 2
B Frage zu Java und OpenGL? Allgemeine Java-Themen 3
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
A eine test thread.join() frage Allgemeine Java-Themen 2
DStrohma LayoutManager Frage zum GridBagLayout Allgemeine Java-Themen 4
F Frage zu Regex möglich Allgemeine Java-Themen 4
H XML-File mit Java erzeugt Frage Allgemeine Java-Themen 10
D Frage und Antwort Programm, Problem bei Methodenaufruf Allgemeine Java-Themen 3
J NetBeans Frage bezüglich der Scanner-Klasse Allgemeine Java-Themen 6
H Java Vector Frage Allgemeine Java-Themen 9
W Frage... Allgemeine Java-Themen 29
R Frage zur topologischen Sortierung Allgemeine Java-Themen 2
H Frage zu weka.core.Instance Allgemeine Java-Themen 3
Y Kleine Frage zu String.split Allgemeine Java-Themen 3
T Frage zu Klassendesing Allgemeine Java-Themen 3
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
C Eclipse Wichtige frage Allgemeine Java-Themen 5
H Frage zu java.weka.core.Instances Allgemeine Java-Themen 3
S Frage zu Format Modifiers in Log4j Allgemeine Java-Themen 11
H Frage zu clone() Allgemeine Java-Themen 5
4 Simple(?) Frage zu Threads Allgemeine Java-Themen 14
H2SO3- SCJP Chapter 3 Frage 10. Falsche Antwort? Allgemeine Java-Themen 15
H Frage sinnvolle Datenspeicherung und -verarbeitung Allgemeine Java-Themen 3
EnHancEd[] kurze enum-Frage Allgemeine Java-Themen 4
X Swing Frage zu MVC Allgemeine Java-Themen 5
D Frage zu den Naming Conventions Allgemeine Java-Themen 5
JCODA Generische Map Frage Allgemeine Java-Themen 10
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
pg1337 Interface-Frage Allgemeine Java-Themen 24
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
W Frage zu Klassendesign und Test mit Mockito Allgemeine Java-Themen 5
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
S Frage zur Plattformunabhängigkeit Allgemeine Java-Themen 14
G RSA Decrypt Frage Allgemeine Java-Themen 3
A Frage zu Arrays Allgemeine Java-Themen 6
S Frage zum Folding Allgemeine Java-Themen 10

Ähnliche Java Themen

Anzeige

Neue Themen


Oben