web-dev-qa-db-fra.com

Comment utiliser une liste de tableaux en Java?

J'ai besoin de savoir si je stocke mes données dans une ArrayList et si je veux obtenir la valeur que j'ai stockée.

Par exemple: si j'ai une liste de tableaux comme celle-ci 

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

et je veux obtenir chaque élément String, comment puis-je le faire?

J'ai essayé de le faire avec le code suivant:

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

L'extrait de code suivant donne un exemple montrant comment obtenir un élément d'une variable List à un index spécifié et comment utiliser la boucle for-each avancée pour parcourir tous les éléments:

    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?"

Notez les points suivants:

  • Les types génériques List<String> et ArrayList<String> sont utilisés à la place du type brut ArrayList.
  • Les noms de variables commencent par des minuscules
  • list est déclaré en tant que List<String>, c’est-à-dire le type d’interface au lieu du type d’implémentation ArrayList<String>.

Références

API:

N'utilisez pas de types bruts

  • Types bruts JLS 4.8

    L'utilisation de types bruts n'est autorisée qu'à titre de concession à la compatibilité du code hérité. L'utilisation de types bruts dans le code écrit après l'introduction de la généricité dans le langage de programmation Java est fortement déconseillée. Il est possible que les futures versions du langage de programmation Java interdisent l'utilisation de types bruts.

  • Effective Java 2nd Edition: Élément 23: N'utilisez pas de types bruts dans le nouveau code

    Si vous utilisez des types bruts, vous perdez tous les avantages des génériques en matière de sécurité et d’expressivité.

Préfère les interfaces aux classes d'implémentation dans les déclarations de type

  • Effective Java 2nd Edition: Article 52: Faire référence aux objets par leurs interfaces

    [...] vous devriez préférer utiliser des interfaces plutôt que des classes pour faire référence à des objets. S'il existe des types d'interface appropriés, les paramètres, les valeurs de retour, les variables et les champs doivent tous être déclarés à l'aide des types d'interface.

Conventions de nommage

Variables: à l'exception des variables, toutes les constantes d'instance, de classe et de classe sont en casse mixte avec une première lettre minuscule.

51
polygenelubricants

Un List est un Collection ordonné d'éléments. Vous pouvez les ajouter avec la méthode add et les récupérer avec la méthode get (int index). Vous pouvez également parcourir une liste, supprimer des éléments, etc. Voici quelques exemples d'utilisation de base d'une 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

Vous pouvez soit obtenir vos chaînes par index (System.out.println(S.get(0));), soit les parcourir:

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

Pour d'autres moyens de parcourir la liste (et leurs implications), voir traditionnel pour loop vs Iterator en Java .

Aditionellement:

  • vous ne devriez pas utiliser de noms de variables commençant par des lettres majuscules
  • vous devriez paramétrer votre liste de tableaux: ArrayList<String> list = new ArrayList<String>();
  • vous devez vous familiariser avec la documentation complète de l'API Java (alias Javadoc ), par exemple. Java 5 , Java 6
3
sfussenegger

Cela devrait faire l'affaire: 

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

Renverra le premier élément du tableau.

Ou

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

Si vous utilisez Java 1.5 ou une version ultérieure, vous pouvez utiliser:

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

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

Vous devriez lire le tutoriel sur les cadres de collections tout d’abord.

Mais pour répondre à votre question, voici comment vous devriez le faire:

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) est utilisé pour renvoyer l'objet stocké dans le fichier index spécifié dans la collection appelante.

Extrait de code :

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

Une solution à trois lignes, mais qui fonctionne assez bien:

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 a introduit l'implémentation par défaut de forEach () dans l'interface Iterable, vous pouvez facilement le faire par une approche déclarative.

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

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

Voici le code de l'interface Iterable

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

Référence

Tout d'abord, vous devrez définir le type de données à conserver dans votre liste. Comme vous avez mentionné que les données vont être String, la liste doit être de type String. 

Ensuite, si vous voulez obtenir tous les éléments de la liste, il vous suffit de parcourir la liste en utilisant une simple boucle for ou une boucle pour chaque boucle.

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

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

De plus, si vous souhaitez utiliser une ArrayList brute au lieu d'une liste générique, vous devrez décaisser la valeur. Lors de l'utilisation de la table de tableaux brute, tous les éléments sont stockés sous forme d'objet. 

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