2011-10-28 4 views
26

Je suis un débutant à Java, et j'ai besoin d'aide. J'essaye de convertir un type de données abstraites Foo qui est une liste associée à un Arraylist des chaînes B. Comment vous bouclez la liste et ajoutez chaque chaîne au tableau. Je suis peut-être trop penser, mais je suis perdu maintenant.Ajout à un ArrayList Java

Merci pour l'aide à l'avance.

+4

s'il vous plaît nous montrer les parties de votre code où vous rencontrez des difficultés – Steven

+1

@Steven : Complètement d'accord. C'est difficile de savoir exactement ce que vous faites. – Akron

Répondre

4

Vous devriez être en mesure de faire quelque chose comme:

ArrayList<String> list = new ArrayList<String>(); 
for(String s : foo) 
{ 
    list.add(s); 
} 
35

instancier une nouvelle ArrayList:

List<String> myList = new ArrayList<String>(); 

itérer sur votre structure de données (avec une boucle, par exemple, plus de détails sur votre code aiderait.) et pour chaque élément (yourElement):

myList.add(yourElement); 
+2

Je pense que dans les dernières versions de Java, vous n'avez pas besoin de spécifier le type une seconde fois: 'Liste myList = new ArrayList <>();' –

1

Eh bien, vous devez itérer rugueuse votre type abstrait Foo et cela dépend des méthodes disponibles sur cet objet. Vous n'avez pas besoin de faire une boucle dans ArrayList car cet objet se développe automatiquement en Java. (Ne le confondez pas avec un tableau dans d'autres langages de programmation)

Lecture recommandée. Lists in the Java Tutorial

9

Si vous avez un ArrayList de chaîne appelée « foo », vous pouvez facilement ajouter (ajouter) à un autre ArrayList, « liste », en utilisant la méthode suivante:

ArrayList<String> list = new ArrayList<String>(); 
list.addAll(foo); 

cette façon, vous don Je n'ai même pas besoin de faire un looping.

+0

addAll peut ne pas fonctionner dans mon cas car il ne prend que des collections. –

+0

de quel cas parlez-vous? s'il vous plaît soyez plus précis. –

+0

disons int [] foo = {1,2,3} Le code ne se compilera pas car addAll ne prendra pas de tels paramètres. JDK 1.7. –

0

merci pour l'aide, j'ai résolu mon problème :) Voici le code si quelqu'un d'autre a besoin: D

import java.util.*; 

public class HelloWorld { 


public static void main(String[] Args) { 

Map<Integer,List<Integer>> map = new HashMap<Integer,List<Integer>>(); 
List<Integer> list = new ArrayList<Integer>(); 
list.add(1); 
list.add(9); 
list.add(11); 
map.put(1,list);   

    int First = list.get(1); 
    int Second = list.get(2); 

    if (First < Second) { 

     System.out.println("One or more of your items have been restocked. The current stock is: " + First); 

     Random rn = new Random(); 
int answer = rn.nextInt(99) + 1; 

System.out.println("You are buying " + answer + " New stock"); 

First = First + answer; 
list.set(1, First); 
System.out.println("There are now " + First + " in stock"); 
}  
} 
} 
Questions connexes