The flightQueue will need to be rewritten to deal with the priority.
Java has a builtin PriorityQueue: http://download.oracle.com/javase/1....rityQueue.html
In order to use it, you need to implement Comparable[<T>] on your Flight class. This allows it to compare itself to other flight's to determine the best location to place it in the internal list. You can use the PriorityQueue for your underlying storage. The comparator will need to compare the priority. The API does not list whether the PriorityQueue class acts as a stable or instable insertion, but given the properties of a Queue its likely instable.
If you need to write this yourself, stick with a custom linked list. LinkedLists are great datastructures for priority queues as you can easily drop and insert from locations within the list with minimal additional overhead. This would require you to do your own checking for the Flight objects in order to determine their best route.
Also, this looks very odd:
Is there a particular reason / requirement that you are using the Integer class for the priority? Integer != int, so these are incomparable directly. I would probably chain a primitive constructor as well and store priority with an underlying int instead of Integer.
public Flight (Integer priority, String flightID)
And in the future, if you could please wrap all code blocks in [code][/code] tags in order to preserve the formatting for the code.