Witam serdecznie. Chcialem skorzystac z listy wiazanej ze standardowej biblioteki javy i oto co mnie zaszokowalo/czego nie rozumiem: tworze nowa liste wiazana, wpisuje do niej losowe wartosci i przekazuje ja do obiektu klasy FCFS, ktory ją sobie po swojemu przetwarza (przy okazji zdejmujac elementy z listy - lista dziala na zasadzie kolejki. pod koniec dzialania funkcji jest pusta). Po opuszczeniu obiektu fcfs chce przekazac ta sama liste obiektowi sstf, bedac przekonanym ze jest niezmieniona. Jednak lista jest pusta - wychodzi na to obiekt fcfs zmienil glowna liste, chociaz nie powinien, przeciez gdy przekazujemy obiekty jako parametry to tworzone sa kopie tych obiektow. Co sie w takim razie dzieje?
package sth;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Random;
public class Main {
public static void main(String[] args){
int ilCyl = 150;
int ilZgl = 3;
int start = 19;
final LinkedList<Integer> q = new LinkedList<Integer>();
Random r = new Random();
for(int i = 0; i<ilZgl; i++){
int liczba = r.nextInt(ilCyl) + 1;
q.offer(liczba);
System.out.print(liczba + ", ");
}
FCFS fcfs = new FCFS(q, start);
int fcfsLicznik = fcfs.work();
SSTF sstf = new SSTF(q, start);
sstf.work();
}
}