Ich bins nochmal 
wollte euch fragen, da ich circa ne stunde auf den code schaue und ihn nicht wirklich nachvollziehen kann. Ich hab 2 Interfaces und 2 Klassen
die Klasse
mein anderes Interface
bis hierhin kann ich noch alles nachvollziehen und bin auch selbst soweit gekommen
doch bei der folgenden Klasse versteh ich nur Bahnhof und hab keine ahnung was da vor sich geht ich hoffe jemand nimmt sich vllt doch die Zeit um mir das ein bisschen verständlich zu machen.
Die Aufgabe: Erstellen Sie eine Implementierung der Prioritätswarteschlange (ArrayList modifizieren)
a. Bei Dequeue: Zu jedem verbleibenden Objekt muss die Methode incrementAge() aufgerufen werden!
so vielen dank an diejenigen die sich die Zeit genommen haben, ich weiss es ist ein riesen Code, doch ich komme alleine hier null weiter ich hätte noch zig fragen stellen können ich hoffe jemand kann mir das einigermassen verständlich näher bringen, denn ich bin echt am verzweifeln grad...
VIELEN DANK !!!
wollte euch fragen, da ich circa ne stunde auf den code schaue und ihn nicht wirklich nachvollziehen kann. Ich hab 2 Interfaces und 2 Klassen
Java:
public interface IF_PrioDetermination {
public int getPriority(int age, int prio);
}
Java:
public class CL_PrioObject {
IF_PrioDetermination prioDet;
private int age;
private int prio;
public CL_PrioObject(IF_PrioDetermination prioDet, int prio) {
this.prioDet = prioDet;
this.prio = prio;
this.age = 0;
}
public int getPriority() {
return prioDet.getPriority(age, prio);
}
public int getPrio() {
return prio;
}
public int getAge() {
return age;
}
public void incrementAge(){
this.age++;
}
Java:
public interface IF_PriorityQueue {
public CL_PrioObject dequeue();
public void enqueue(CL_PrioObject neu);
}
doch bei der folgenden Klasse versteh ich nur Bahnhof und hab keine ahnung was da vor sich geht ich hoffe jemand nimmt sich vllt doch die Zeit um mir das ein bisschen verständlich zu machen.
Die Aufgabe: Erstellen Sie eine Implementierung der Prioritätswarteschlange (ArrayList modifizieren)
a. Bei Dequeue: Zu jedem verbleibenden Objekt muss die Methode incrementAge() aufgerufen werden!
Java:
package priority_Queue;
import java.util.ArrayList;
public class CL_PriorityQueue implements IF_PriorityQueue {
private ArrayList<CL_PrioObject> queue = new ArrayList<CL_PrioObject>(); //eine Arraylist wird erstellt, aber wieso ?
@Override
public CL_PrioObject dequeue() { // seh ich das richtig wenn sich kein Objekt hier mehr / //befindet passiert gar nix und nichts wird returned ?
if (queue.size() == 0) {
return null;
}
CL_PrioObject tmp = queue.get(0); //das ist mein Drehpunkt an dem ich gar nichts mehr wirklich verstehe wird hier ein Objekt names tmp erstellt ? Weil tmp kommt hier zum ersten mal vor und was wird den hier von dem queue rausgeholt ?
for (CL_PrioObject i : queue) { //was soll diese Bezeichnung "i:queue" ?
if (tmp.getPriority() < i.getPriority()) { // allgemein der ganze block ist so / / u //unverständlich für mich ich könnte tausende fragen hierzustellen
tmp = i;
}
}
queue.remove(tmp); //was wird hier entfernt ?
for (CL_PrioObject i : queue) {
i.incrementAge();
}
return tmp;
}
@Override
public void enqueue(CL_PrioObject neu) {
if (!queue.contains(neu)) {
queue.add(neu);
}
VIELEN DANK !!!