2011-10-28 67 views
26

我是java的初学者,需要一些帮助。添加到ArrayList Java

我想将一个抽象数据类型Foo这是一个关联列表转换为字符串B的Arraylist。你如何遍历列表并将每个字符串添加到数组。

我可能已经在想它了,但现在我迷了路。

感谢您的帮助提前。

+4

请你在哪里遇到困难 – Steven

+1

@Steven告诉我们你的代码的部分: 完全同意。很难知道你到底在做什么。 – Akron

回答

4

你应该能够做一些事情,如:

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

实例化一个新的ArrayList:

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

遍历你的数据结构(用一个for循环,例如,更多细节上的代码将有所帮助。)和每个元素(yourElement):

myList.add(yourElement); 
+2

我认为在最新版本的Java中,你不需要第二次指定类型:'List myList = new ArrayList <>();' –

1

那么,你必须迭代th粗略的抽象类型Foo,这取决于该对象上可用的方法。您不必循环访问ArrayList,因为此对象在Java中自动增长。 (不要将它与其他编程语言中的数组混淆)

推荐阅读。 Lists in the Java Tutorial

9

如果你有一个String数组列表称为“富”,你可以很容易地附加(添加)到另一个ArrayList中,“列表”,使用下面的方法:

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

这样你不甚至不需要循环任何东西。

+0

addAll可能不适用于我的情况,因为它只需要集合。 –

+0

你在说什么?请更具体。 –

+0

say int [] foo = {1,2,3}代码不会编译,因为addAll不会使用这些参数。 JDK 1.7。 –

0

感谢您的帮助,我已经解决了我的问题:)下面是代码,如果任何人都需要它: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"); 
}  
} 
}