У меня есть класс Card, который содержит значение (int), масть (String) и faceValue (String). Кажется, что обычная сортировка вставкой Card.value должна работать нормально. Я просто использую весь объект при перемещении. По какой-то причине это вылетает и горит. В конечном итоге старшая карта дублируется в каждом элементе, за исключением случайного элемента, который я не могу понять.
значение, масть и лицевое значение также являются открытыми. p>
Это мой код:
Код: Выделить всё
public static void insertionSort(ArrayList Array) {
int i,j;
Card key = new Card(0, "","");
for (i = 1; i < Array.size(); i++) {
key.value = Array.get(i).value;
key.suit = Array.get(i).suit;
key.faceValue = Array.get(i).faceValue;
j = i;
while((j > 0) && (Array.get(j - 1).value > key.value)) {
Array.set(j,Array.get(j - 1));
j--;
}
Array.set(j,key);
}
}
Я сверил это с псевдокодом Википедии и не нашел никакой фундаментальной разницы. Я просматривал отладчик дюжину раз и не вижу никакой причины, по которой компилятор должен делать то, что он делает. Есть ли у кого-нибудь идеи, почему это не работает?
Спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/235 ... of-objects