Element in Mitten eines Arrays einfügen

Laren

Bekanntes Mitglied
Hi,

Ich soll für die uni eine Klasse Queue nach schreiben, aber es ist kein einfacher Queue sondern ein PriorityQueue:toll:, dies soll über ein Array gemacht werden.
Die Objekte in diesem Queue sollen der Priorität nach aufgenommen werden.
Mein aufbau ist eine Klasse "PriorityObjekt", die das zu übergebene Object enthält und die zugehörige Priority.
Dieses PriorityObjekt kann durch die Methode "add" in der Klasse "PriorityQueue" hinzugefügt werden.
Soweit so gut, aber wie füge ich ein Objekt in meinen Queue(der ein Array ist) ein, wenn das Objekt in die Mitte, oder an 2ter Stelle...soll?

Viele Grüße

Java:
public class PriorityObjekt {
private Object element;
private	int priority;
	public PriorityObjekt(Object element,int priority)
	{
	this.element=element;
	this.priority=priority;
	}
	/**
	 * @return the priority
	 */
	public int getpriority() {
		return priority;
	}
	/**
	 * @param priority the priority to set
	 */
	public void setpriority(int priority) {
		this.priority = priority;
	}
	/**
	 * @return the element
	 */
	public Object getElement() {
		return element;
	}
}
Die Add Methode in der Queue
Java:
public void add(int priority,Object o) 
	
	{
	if(!this.isFull())
	{
		 po = new PriorityObjekt(o, priority);
	
		for(int i = 0; i<size;i++)
		{
			if(queue[i].getPrirority()>po.getPrirority())
                   //wie könnte ich hier weiter machen
				
		}
		size++;
	}
	else
		throw new QueueOutOfBoundsException("Queue ist bereits voll");

	}
 
Sicher das du einen Array verwenden sollst? Das macht überhaupt keinen Sinn eigentlich, denn wenn du mitten in ein arrays was einfügen willst musst du halt extremen Overhead betreiben und eigentlich bei jedem einfügen das Array ab einer bestimmten Stelle neu einsortieren. Ohne Daten in ein neues Array zu kopieren oder im vorhanden Array alle Einträge ab der Stelle wo eingefügt wird um 1 zu verschieben gehts nicht.

Es macht einfach gar keinen Sinn das mit Arrays zu lösen...
 
Stimmt, da wäre eine (ggf. doppelt) verlinkte Liste irgendwie sinnvoller. Aber wenn die Aufgabe das vorgibt und das ganze zu Übungszwecken erfolgt, musst du dich wohl an dem Array festhalten.
 
-ein array erstellen das ein feld größer ist
-bis zur gewünschten stelle das alte array kopieren
-neues objekt einfügen
-rest vom alten array ranhängen
 

Zurück
Oben