问题
PriorityQueue
was added in Java 1.5
new PriorityQueue()
is enabled in Android, but
new PriorityQueue(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return 0;
}
});
requires API 24. Why?
回答1:
Because PriorityQueue(Comparator) constructor was added to the SDK in API level 24. In JDK, that constructor was added in Java 8.
For compatibility with earlier API levels, you can use PriorityQueue(int,Comparator) that has been there since API level 1.
回答2:
That is because PriorityQueue in Java 1.5 does not have PriorityQueue (Comparator<? super E> comparator)
constructor at all. It was implemented only in Android SDK, and only in API 24.
You can use Java's PriorityQueue (int initialCapacity, Comparator<? super E> comparator)
constructor from Android API 1
回答3:
PriorityQueue(Comparator)
constructor was implemented in API level 24
.
Android Developers reference:
来源:https://stackoverflow.com/questions/47301031/why-priorityqueue-requires-api-24-in-android