【发布时间】:2021-07-15 05:58:33
【问题描述】:
我有以下 Java 代码:
List<List<Integer>> list1 = new ArrayList<List<Integer>>(rankings);
for (int i = k + 1; i < rankings.size(); i++) {
for (int j = 0; j < rankings.get(0).size(); j++) {
int index = rankings.get(i).indexOf(j);
list1.get(i).set(index, map.get(j));
}
}
// ...
int newrank = sort(list1.get(i), 0, list1.get(i).size() - 1); // sorts list1
list1 已排序,但 rankings 也已排序。我怎样才能防止这种情况发生?
我想做的只是创建rankings 的副本,这样在我对临时复制的数组进行排序时,原始副本不会受到影响。
提前致谢。
【问题讨论】:
-
你想创建一个deep copy 的
rankings。 -
sort()调用将对每个子列表进行排序(假设它位于代码中未显示的i循环内),但不会对list1本身进行排序。您声称的内容是错误的! -
什么是
map??
标签: java