如何在 Java 中复制数组列表?
How to Duplicate an array list in Java?
我有一个数组列表,用于存储名为 Movie 的对象。这些对象包含名称、发行日期、流派等变量。有没有办法复制数组,这样我就可以一个一个地对它进行排序,保持原始数据不变。我将在文本区域中显示数据。
使用
List<Movie> newList = new ArrayList<>(existingList);
您可以创建旧 ArrayList
的副本:
List<Movie> newList = new ArrayList<Movie>(oldList);
您应该知道,这会创建原始 ArrayList
的 浅拷贝 ,因此两个列表中的所有对象都是相同的,但是两个列表将是不同的对象。
虽然问题有歧义,但是可以用
List<Integer> newList = new ArrayList<Integer>(oldList);
复制旧的 List
和
Arrays.copyOf()
复制数组。
System.arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
每个集合 Class 都提供一个构造函数来创建重复的集合对象。
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);
}
您可以从原始数组列表中获取数组,如下所示:
Movie movieArray[] = arrayListMovie
.toArray(new Movie[arrayListMovie.size()]);
我有一个数组列表,用于存储名为 Movie 的对象。这些对象包含名称、发行日期、流派等变量。有没有办法复制数组,这样我就可以一个一个地对它进行排序,保持原始数据不变。我将在文本区域中显示数据。
使用
List<Movie> newList = new ArrayList<>(existingList);
您可以创建旧 ArrayList
的副本:
List<Movie> newList = new ArrayList<Movie>(oldList);
您应该知道,这会创建原始 ArrayList
的 浅拷贝 ,因此两个列表中的所有对象都是相同的,但是两个列表将是不同的对象。
虽然问题有歧义,但是可以用
List<Integer> newList = new ArrayList<Integer>(oldList);
复制旧的 List
和
Arrays.copyOf()
复制数组。
System.arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
每个集合 Class 都提供一个构造函数来创建重复的集合对象。
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);
}
您可以从原始数组列表中获取数组,如下所示:
Movie movieArray[] = arrayListMovie
.toArray(new Movie[arrayListMovie.size()]);