如何将数组存储到ArrayList的元素中?

时间:2012-10-29 17:54:52

标签: java arraylist

Robentry [] Rb = new Robentry[robNum];

如何将Rb存储到ArrayList<E> Rt,以便Rt.get(0) == Rbtrue。我不知道如何在E中定义ArrayList<E>

修改

如果我使用:

Robentry [] Rb = new Robentry[robNum];
List<Robentry []> Rt = new  ArrayList<Robentry []>();
// initialize Rb
//...
// 
Rt.add(Rb);

如果我更改Rb[0]Rt.get(0)[0]也会更改。那么如何将Rb的内容存储到Rt中,以便Rt独立于Rb

5 个答案:

答案 0 :(得分:7)

ArrayList<Robentry[]> arrList听起来就像你想要的那样。

这意味着arrListList的{​​{1}}(或ArrayList}。

答案 1 :(得分:2)

您可以将Type Robentry []用于List。喜欢 -

List<Robentry []> list = new ArrayList<Robentry []>();

答案 2 :(得分:2)

您可以声明并使用类型为List的{​​{1}},如下所示:

Robentry[]

请注意: //Declare a list of type Robentry[] List<Robentry[]> list = new ArrayList<Robentry []>(); //add the rb to the list list.add(Rb); //compare the list element with Rb System.out.println(list.get(0)==Rb);//should print true 在上面的示例中没问题,因为list元素与Rb相同,否则建议使用==方法。

答案 3 :(得分:2)

 ArrayList<Robentry> Rt=(ArrayList<Robentry>) Arrays.asList(Rb);

或以你的方式,

ArrayList<Robentry[]> Rt=new ArrayList<Robentry[]>();
rt.add(Rb);

这称为泛型,用于确保变量应仅包含特定类型。请参阅官方docs

答案 4 :(得分:2)

根据您修改过的问题,您可能需要

Rt.add(Rb.clone());

Rt.add(Arrays.copyOf(Rb, Rb.length));

数组引用按值传递,因此如果希望数组彼此独立,则必须执行显式复制。