2
Robentry [] Rb = new Robentry[robNum];

我怎样才能存储Rb到一个ArrayList<E> Rt,所以Rt.get(0) == Rbtrue。不知道怎么定义EArrayList<E>

编辑:

如果我使用:

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

如果我改变Rb[0]Rt.get(0)[0]也会改变。那么如何存储Rbinto的内容,Rt使其Rt独立于Rb

4

5 回答 5

7

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

这意味着arrListList(或ArrayList)的Robentry[]

于 2012-10-29T17:56:09.873 回答
2

你可以使用 Type Robentry[] 到一个列表。像 -

List<Robentry []> list = new ArrayList<Robentry []>();
于 2012-10-29T17:56:07.720 回答
2

您可以如下声明和使用Listof 类型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

请注意:==在上面的示例中很好,因为列表元素与 Rb 相同,否则equals建议使用方法。

于 2012-10-29T17:58:49.433 回答
2
 ArrayList<Robentry> Rt=(ArrayList<Robentry>) Arrays.asList(Rb);

或以你的方式,

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

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

于 2012-10-29T17:59:25.143 回答
2

根据您修改后的问题,您可能想要

Rt.add(Rb.clone());

或者

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

数组引用是按值传递的,因此如果您希望数组相互独立,则必须进行显式复制。

于 2012-10-29T18:26:40.970 回答