我正在制作我自己的那种思考,它实现了Comparable接口。算法看起来很好,但我想是Comparable a = list.get(i);
是一个链接,但我需要这个对象的副本。我不能使用list.get(i).copy()
,因为它对于Comparable来说是未定义的。
private static void sortIncrease(ArrayList<Comparable> list) {
int i, j;
for (i = 1; i < list.size(); i++) {
Comparable a = list.get(i);
for (j = i - 1 ; j >= 0 ; j = j - 1) {
int cmpResult = a.compareTo(list.get(j));
if (cmpResult < 0) {
list.set(j + 1, list.get(j));
} else {
list.set(j+1, a);
break;
}
}
}
}
答案 0 :(得分:-1)
我可以建议你一个不好的方式&#34;要做到这一点,创建自己的克隆方法。 你可以:
- 将另一个Comparable的参数作为输入,并将它们克隆到您的对象中
- 创建一个提供参数的方法,稍后将其插入构造函数中。