Was ist der Output folgenden Codes:
Queue<String> a = new PriorityQueue<String>();
a.add(“C”);
a.add(“A”);
a.add(“B”);
System.out.print(a.poll() + ” “);
System.out.print(a.peek() + ” “);
System.out.print(a.peek());
| Antwort/ answer | |
|---|---|
Was ist der Output folgenden Codes:
Queue<String> a = new PriorityQueue<String>();
a.add(“C”);
a.add(“A”);
a.add(“B”);
System.out.print(a.poll() + ” “);
System.out.print(a.peek() + ” “);
System.out.print(a.peek());
| Antwort/ answer | |
|---|---|
Wie ist der Output des folgenden Codes?
public class Angestellter {
static public void main(String[] Args){
PriorityQueue <Integer>a = new PriorityQueue <Integer>();
a.add(5);
a.add(9);
a.add(3);
System.out.println(a.peek());
System.out.println(a.poll());
System.out.println(a.peek());
}
}
| Antwort/ answer | |
|---|---|
Wie wir ja schon besprochen haben, kann der PriorityQueue auch andere “Prioritäten” anstatt der natürlichen Ordnung mitgeteilt werden.
Hierfür wird (genau wie bei den anderen Collections) Comparable oder Comaparator genutzt:
class ObjSort implements Comparator <Integer>{
public int compare(Integer a,Integer b)
return (b.compareTo(a));
}
Dies wird dann bei der Implementation der PriorityQueue vermerkt:
PriorityQueue <Integer> a = new PriorityQueue <Integer>(100, new ObjSort());
Wenn wir folgende Werte zuweisen
a.offer(3);
a.offer(7);
a.offer(1);
a.offer(5);
a.offer(9);
ist die Ausgabe von :
int b=a.size();
for (int i =0; i<b; i++)
System.out.println(a.peek() +” ” +a.size()); // Ausgabe des obersten Elements ohne Löschung
9 5
9 5
9 5
9 5
9 5
und die Ausgabe von
for (int i =0; i<b; i++)
System.out.println(a.poll() +” ” +a.size()); // Ausgabe und Löschung des obersten Elements
9 4
7 3
5 2
3 1
1 0