我有一个存储名为Movie的对象的数组列表。对象包含变量,如名称,发布日期,类型等。有没有办法复制数组,所以我可以逐个排序,保持原始数据不变。我将在文本区域中显示数据。
答案 0 :(得分:4)
使用
List<Movie> newList = new ArrayList<>(existingList);
答案 1 :(得分:1)
您可以使用以下内容创建旧List<Movie> newList = new ArrayList<Movie>(oldList);
的副本
ArrayList
您应该知道这会创建原始{{1}}的浅层副本,因此两个列表中的所有对象都是相同的,但这两个列表将是不同的对象。
答案 2 :(得分:0)
虽然问题含糊不清,但您可以使用
List<Integer> newList = new ArrayList<Integer>(oldList);
复制旧的列表
和
Arrays.copyOf()
复制数组。
答案 3 :(得分:0)
System.arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
答案 4 :(得分:0)
每个Collection Class都提供一个构造函数来创建一个重复的集合Object。
List<Movie> newList = new ArrayList<Movie>(oldList);
因为newList和oldList是不同的对象,所以你也可以创建这个对象的克隆 -
public static List<Movie> cloneList(List<Movie> oldList) {
List<Movie> clonedList = new ArrayList<Movie>(oldList.size());
for (Movie movie: oldList) {
clonedList.add(new Movie(movie));
}
return clonedList;
}
ArrayList也是动态数组,但是如果你想将它存储在数组中,你可以这样做 -
int n=oldList.size();
Movie[] copiedArray=new Movie[n];
for (int i=0;i<oldList.size();i++){
copiedArray[i]=oldList.get(i);
}
答案 5 :(得分:0)
您可以从原始阵列列表中获取数组,如下所示:
Movie movieArray[] = arrayListMovie
.toArray(new Movie[arrayListMovie.size()]);