Защо тези твърдения са равни? Стек методи в java

Защо следните твърдения са еквивалентни? emptyRow и emptyCol са цели числа, а Grid е двуизмерен масив от цели числа. Няма нужда да знаете какво прави програмата, но в случай, че се чудите, това е алгоритъм за решаване на судоку, който използва основно обратно проследяване.

И двата израза позволяват на програмата да работи без никакви грешки, но не разбирам как е възможно това, тъй като .pop() връща най-горното цяло число в първото изпълнение, докато второто първо изважда най-горните елементи и извлича целите числа директно под тези.

Твърдение А:

Grid[emptyRow.pop()][emptyCol.pop()] = 0;

Изявление Б:

emptyRow.pop();
emptyCol.pop();
Grid[emptyRow.peek()][emptyCol.peek()] = 0;

Съжалявам, ако това е глупав логически проблем с моя код, просто проверявам дали има нещо, което не знам за това как работят стековите операции.


person Macalaca    schedule 14.11.2013    source източник


Отговори (1)


Изявление А е същото като

Grid[emptyRow.peek()][emptyCol.peek()] = 0;
emptyRow.pop();
emptyCol.pop();

Мисля, че сте объркали реда и може би във вашия случай на употреба това няма значение, но кодът не е същият.

person Peter Lawrey    schedule 14.11.2013