wake-up-neo.com

Wie verwende ich eine Array-Liste in Java?

Ich muss wissen, ob ich meine Daten in einer ArrayList speichere, und ich muss den darin gespeicherten Wert ermitteln.

Zum Beispiel: wenn ich eine Array-Liste wie diese habe 

      ArrayList A = new ArrayList();
      A = {"Soad", "mahran"};

und ich möchte jedes String-Element erhalten. Wie kann ich das tun?

Ich habe es mit folgendem Code versucht:

package arraylist;

import Java.util.ArrayList;

public class Main {

        public static void main(String[] args) {
        ArrayList S = new ArrayList();

        String A = "soad ";
        S.add(A);
        S.add("A");
        String F = S.toString();
        System.out.println(F);
        String [] W = F.split(",");
        for(int i=0 ; i<W.length ; i++) {
           System.out.println(W[i]);
        }
    }
}
46
soad El-hayek

Das folgende Snippet zeigt ein Beispiel, in dem gezeigt wird, wie ein Element aus einer List an einem angegebenen Index abgerufen wird und wie die erweiterte for-each-Schleife zum Durchlaufen aller Elemente verwendet wird:

    import Java.util.*;

    //...

    List<String> list = new ArrayList<String>();
    list.add("Hello!");
    list.add("How are you?");

    System.out.println(list.get(0)); // prints "Hello!"

    for (String s : list) {
        System.out.println(s);
    } // prints "Hello!", "How are you?"

Beachten Sie das Folgende:

  • Generische List<String>- und ArrayList<String>-Typen werden anstelle des rohen ArrayList-Typs verwendet.
  • Variablennamen beginnen mit Kleinbuchstaben
  • list ist als List<String> deklariert, d. h. der Schnittstellentyp anstelle des Implementierungstyps ArrayList<String>.

Verweise

API:

Verwenden Sie keine rohen Typen

  • JLS 4.8 Raw-Typen

    Die Verwendung von Raw-Typen ist nur als Zugeständnis für die Kompatibilität von altem Code zulässig. Die Verwendung von Raw-Typen in Code, der nach der Einführung der Generizität in die Programmiersprache Java geschrieben wurde, wird dringend empfohlen. Es ist möglich, dass zukünftige Versionen der Java-Programmiersprache die Verwendung von Raw-Typen verbieten.

  • Effective Java 2nd Edition: Punkt 23: Verwenden Sie keine Rohtypen in neuem Code.

    Wenn Sie rohe Typen verwenden, verlieren Sie alle Sicherheits- und Ausdrucksvorteile von Generika.

Schnittstellen zu Implementierungsklassen in Typdeklarationen vorziehen

  • Effective Java 2nd Edition: Nr. 52: Verweisen Sie auf Objekte anhand ihrer Schnittstellen

    [...] Sie sollten lieber Schnittstellen als Klassen verwenden, um auf Objekte zu verweisen. Wenn geeignete Schnittstellentypen vorhanden sind, sollten alle Parameter, Rückgabewerte, Variablen und Felder mit Schnittstellentypen deklariert werden.

Regeln der Namensgebung

Variablen: Mit Ausnahme von Variablen werden alle Instanz-, Klassen- und Klassenkonstanten in Groß- und Kleinschreibung mit einem Kleinbuchstaben geschrieben.

51

Eine Liste ist eine geordnete Sammlung von Elementen. Sie können sie mit der add-Methode hinzufügen und mit der get-Methode (int index) abrufen. Sie können auch eine Liste durchlaufen, Elemente entfernen usw. Hier einige grundlegende Beispiele für die Verwendung einer Liste:

List<String> names = new ArrayList<String>(3); // 3 because we expect the list 
    // to have 3 entries.  If we didn't know how many entries we expected, we
    // could leave this empty or use a LinkedList instead
names.add("Alice");
names.add("Bob");
names.add("Charlie");
System.out.println(names.get(2)); // prints "Charlie"
System.out.println(names); // prints the whole list
for (String name: names) {
    System.out.println(name);  // prints the names in turn.
}
6
jjujuma

Sie können Ihre Zeichenfolgen entweder über den Index (System.out.println(S.get(0));) abrufen oder durchlaufen:

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

Weitere Möglichkeiten zum Durchlaufen einer Liste (und ihrer Auswirkungen) finden Sie unter traditional für Schleife gegen Iterator in Java .

Zusätzlich:

  • sie sollten keine Variablennamen verwenden, die mit Großbuchstaben beginnen
  • sie sollten Ihre Array-Liste parametrisieren: ArrayList<String> list = new ArrayList<String>();
  • sie sollten sich mit der umfangreichen API-Dokumentation von Java (aka Javadoc ) vertraut machen, z. Java 5 , Java 6
3
sfussenegger

Das sollte den Trick tun: 

String elem = (String)S.get(0);

Gibt das erste Element im Array zurück.

Oder

for(int i=0 ; i<S.size() ; i++){
     System.out.println(S.get(i));
}
2
dvd

Wenn Sie Java 1.5 oder höher verwenden, können Sie Folgendes verwenden:

List<String> S = new ArrayList<String>();
s.add("My text");

for (String item : S) {
  System.out.println(item);
}
1
extraneon

Sie sollten zunächst das Collections Framework Tutorial lesen.

Aber um Ihre Frage zu beantworten, so sollten Sie es tun:

ArrayList<String> strings = new ArrayList<String>();
strings.add("String1");
strings.add("String2");

// To access a specific element:
System.out.println(strings.get(1));
// To loop through and print all of the elements:
for (String element : strings) {
    System.out.println(element);
}
1
DaveJohnston

object get (int index) wird verwendet, um das in .__ gespeicherte Objekt zurückzugeben. angegebener Index innerhalb der aufrufenden Auflistung.

Code-Auszug :

import Java.util.*;


class main
{
    public static void main(String [] args)
    {
        ArrayList<String> arr = new ArrayList<String>();
        arr.add("Hello!");
        arr.add("Ishe");
        arr.add("Watson?");

        System.out.printf("%s\n",arr.get(2)); 

        for (String s : arr) 
        {
            System.out.printf("%s\n",s);
        } 
    }
}
1
rashedcs

Eine dreizeilige Lösung, die aber recht gut funktioniert:

int[] source_array = {0,1,2,3,4,5,6,7,8,9,10,11};
ArrayList<Integer> target_list = new ArrayList<Integer>();
for(int i = 0; i < source_array.length; i++){
    target_list.add(random_array[i]);
}
1
Vadim Gouskov

Java 8 hat die standardmäßige Implementierung von forEach () in der Iterable-Schnittstelle eingeführt.

  List<String> values = Arrays.asList("Yasir","Shabbir","Choudhary");

  values.forEach( value -> System.out.println(value));

Hier ist der Code der Iterable-Schnittstelle

  default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

Referenz

Zunächst müssen Sie festlegen, welcher Datentyp in Ihrer Liste enthalten sein muss. Da Sie bereits erwähnt haben, dass die Daten String sein werden, sollte die Liste vom Typ String sein. 

Wenn Sie alle Elemente der Liste abrufen möchten, müssen Sie die Liste mit einer einfachen for-Schleife oder einer für jede Schleife durchlaufen.

List <String> list = new ArrayList<>();
list.add("A");
list.add("B");

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

Wenn Sie eine unformatierte ArrayList anstelle einer generischen verwenden möchten, müssen Sie den Wert auch downcasten. Bei Verwendung der rohen ArrayList werden alle Elemente in Form von Object gespeichert. 

List list = new ArrayList();
list.add("A");
list.add("B");

for(Object obj : list){
    String s = (String) obj; //downcasting Object to String
    System.out.println(s);
}
0
Anirudh Agarwal