Люди, мой метод должен добавить новый элемент в уже отсортированный список, т. Е. В правильное положение. Дело в том, что метод должен добавлять объекты в диагональный вид. Например,Ввод элементов в отсортированный список
board.set(1,1,11);
board.set(2,4,33);
board.set(3,4,66);
board.set(3,2,44);
board.set(3,3,55);
board.set(1,4,88);
board.set(0,2,77);
board.set(0,5,99);
board.set(2,1,22);
Результат должен быть:
[(2,1,22), (3,2,44), (1,1,11), (3,3,55), (3,4,66), (0,2,77), (2,4,33), (1,4,88), (0,5,99)]
Но моя программа печатает это:
[(3,4,66), (3,3,55), (3,2,44), (2,4,33), (2,1,22), (1,4,88), (1,1,11), (0,5,99), (0,2,77)]
т.е. он не ставит объекты в правильное положение.
У меня есть LinkedList<RowColElem<T>>leftDiagSeq
, где объекты добавляются и помещаются в правильное положение «в движении». Что мой код отсутствует?
ПРИМЕЧАНИЕ. Мне не разрешено использовать компараторы, сопоставимый интерфейс!
код
LinkedList<RowColElem<T>> rowColSeq;
private void sortedLeftDiagSeq(int row, int col, T x){
RowColElem<T> object = new RowColElem<T>(row, col, x);
ListIterator<RowColElem<T>> iter = leftDiagSeq.listIterator();
RowColElem<T> inListObject;
boolean added = false;
while(iter.hasNext()){
inListObject = iter.next();
if(object.getRow()-1 < inListObject.getRow() ||
object.getRow()-1 == inListObject.getRow() &&
object.getCol()-1 < inListObject.getCol()){
if(iter.hasPrevious()){
iter.add(object);
}
}
}
}
Если вы беспокоитесь о проблемах с копирайтом, то, возможно, вам не следует публиковать код в первую очередь или спрашивать в открытом форуме, таком как SE, потому что код все еще доступен в ревизии. – Bon
http://meta.stackoverflow.com/questions/251923/what-to-do-when-an-op-asks-to-delete-my-code-from-my-answer –