Getter einer PriorityQueue

Diskutiere Getter einer PriorityQueue im Java Basics - Anfänger-Themen Bereich.
M

Mika34

Gute Nacht an alle,

Ich gerade etwas an einer Priority Queue, welche ich im Forum aufgegriffen habe. Ich möchte hierfür einen getter schreiben, der mir "die nächste potentielle freie ID gibt" ohne dabei allocate zu verwenden und dadurch den Zähler next zu verändern. Habt ihr eine Ahnung wie das geht, denn um ehrlich zu sein, bin ich mir nicht mal sicher, ob dies bei einer PriorityQueue geht.
Mein Ansatz war einen normalen Getter zu schreiben, aber das ging nach hinten los. Der momentane Getter gibt mir bei den vorhandenen ID's: 1,3,4,5 zurück, dass die 6 die nächste freie ID ist, aber das stimmt ja auf keinen Fall...

Code:
public class IdIdentifier {
  private final PriorityQueue<Integer> items = new PriorityQueue<>();
  private int next = 1;
  //Dieser Getter funktioniert nicht
  public int getNext() {
      return this.next;
  }
  /**
   * Gibt die nächste freie Id zurück
   * @return nächste freie id
   */
  public int allocate() {
    return !items.isEmpty() ? items.poll() : next++;
  }

  /**
   * Markiert die gegebene Id als frei
   * @param id id, welche freigeschaltet werden soll
   */
  public void free(int id) {
    items.add(id);
  }
 
mihe7

mihe7

Ich möchte hierfür einen getter schreiben, der mir "die nächste potentielle freie ID gibt" ohne dabei allocate zu verwenden und dadurch den Zähler next zu verändern.
Naja, allocate macht das im Prinzip schon. Du kannst natürlich auch items.peek() verwenden, um die Queue nicht zu verändern.
 
Thema: 

Getter einer PriorityQueue

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben