Robentry [] Rb = new Robentry[robNum];
如何将Rb
存储到ArrayList<E> Rt
,以便Rt.get(0) == Rb
为true
。我不知道如何在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
?
答案 0 :(得分:7)
ArrayList<Robentry[]> arrList
听起来就像你想要的那样。
这意味着arrList
是List
的{{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));
数组引用按值传递,因此如果希望数组彼此独立,则必须执行显式复制。