2010-11-13 75 views
3

嗨,当我想有像矢量向量的东西(元素当然会排序)我想有arraylist的arraylists,但在C + +我会这样做访问元素v.at(i).at(j)=5;,当我需要添加新元素v.at(i).push_back(value); 那么我如何在java中做到这一点?因为我只能访问外部数组列表,但是我不知道如何添加新元素......并且有没有更好的方法来模拟Java中向量的C++向量?Array列表的arraylist

P.S(它不是一个矩阵3 * 2 EX但每个ArrayList中可以有不同的大小)

回答

7

声明ArraList<Integer>ArrayList S:

ArrayList<ArrayList<Integer>> v = new ArrayList<ArrayList<Integer>>(); 
v.add(new ArrayList<Integer>()); 

v.get(0).add(new Integer(5)); 
v.get(0).add(new Integer(10)); 
System.out.println(v.get(0).get(0)); // => 5 
System.out.println(v.get(0).get(1)); // => 10 
+1

你不应该使用'new Integer(..)'。让Java autobox吧。或者,最不喜欢使用'Integer.valueOf(..)' – Bozho 2010-11-13 18:26:12

4
List<List<Integer>> l = new ArrayList<List<Integer>>(); 

// initialize the inner lists 
for (int i = 0; i < 10; i++) 
    l.add(new ArrayList<Integer>()); 


// now you can use it as you would like 
l.get(i).add(5); 
l.get(i).set(0, 3); 
+0

停止使用Vector类! Sry很粗鲁,但Vector在5年内“被弃用”。 – helpermethod 2010-11-13 11:05:49

+0

我知道,我刚刚编辑并从ArrayList更改为Vector。我想他需要一个同步的版本... – dacwe 2010-11-13 11:07:57

+0

改回到ArrayList(现在使用List接口 - 更清洁)。 – dacwe 2010-11-13 11:10:09

1

你可以在Java中有List<List<Integer>>。访问该元素将是list.get(i).get(j)。同样添加:list.get(i).add(var)。还需要看看set(..)方法

0

我无法对先前的评论回应还,所以我会在这里发布。

,因为NetBeans说,这是没有必要写

ArrayList< ArrayList< Integer>> v = new ArrayList< ArrayList< Integer>>(); 

因为这些论点是多余的;相反,您可以编写:

ArrayList< ArrayList< Integer>> v = new ArrayList<>();