Witam,
Mam pewien problem. Poniżej zamieszczam kod - jest dosyć krótki. Zdaję sobie sprawę, że jest to napisane w nieodpowiedni sposób i powinny tu być różne klasy itd. (w moim właściwym projekcie jest napisane jak należy i też nie działa). Kod sklepany specjalnie, aby ograniczyć się do minimum:
import java.util.ArrayList;
import java.util.Random;
public class Main {
static ArrayList <Integer> procesy = new ArrayList <Integer> (30);
static private Random rm = new Random();
public static void main(String [] args){
wypelnij();
wyswietlProcesy(procesy);
fcfs();
fcfs();
fcfs();
}
private static void wypelnij(){
for(int i =0; i < 30 ; i++){
procesy.add(rm.nextInt(31)%31);
}
}
static private void wyswietlProcesy(ArrayList <Integer> procesy){
System.out.print("\n");
for(int i = 0; i < procesy.size(); i++){
System.out.print(procesy.get(i) + ", ");
}
}
private static double fcfs(){
ArrayList <Integer> proc = procesy;
double tmp=0;
double wynik = 0;
int dzielnik = procesy.size();
for (int i = 0; i < dzielnik; i++){
wyswietlProcesy(proc);
tmp += proc.get(0);
wynik += tmp;
proc.remove(0);
}
return wynik/dzielnik;
}
}
Dlaczego moge uzyc metody fcfs() tylko jeden raz? Z mojego właściwego projektu wiem, że po czymś takim ArrayLista 'procesy' ma w sobie tylko 30 wartosci null. Tylko dlaczego? Przeciez nic na niej nie robie. Tworze sobie zmienna pomocnicza i tylko na niej operuje. Nie moge do tego dojsc. Przedwczoraj 4 godziny spedzilem szukajac tego jednego bledu, ktory pewnie okaze sie banalem.
Prosze o pomoc