Я делаю свой собственный anythink, который реализует интерфейс Comparable. Алгоритм выглядит отлично, но Comparable a = list.get(i);
- ссылка, как я предполагаю, но мне нужна копия этого объекта. Я не могу использовать list.get(i).copy()
, потому что он не определен для Comparable.Как скопировать объект в Java
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;
}
}
}
}
Зачем вам нужна копия объекта? Если это алгоритм сортировки, в этом нет необходимости. – Kayaman
Правильно, вы обычно не копируете объект, вы копируете ссылку. Также обычно сравнивается 'Comparable'. Например. 'Сопоставимый'. Не используйте необработанные типы. –
markspace
Я не могу параметризовать его, потому что я действительно не знаю, что это такое. Это может быть строка, или int, или smth else. @markspace –