使用接受集合的构造函数:new PriorityQueue<String>(Arrays.asList(yourArray)); Java文档一贯地没有提到复杂度的任何内容,但是阅读源代码显示,OpenJDK使用了典型的O(n)堆化方法,而不是在循环中插入:private void initFromCollection(Collection<? extends E> c) { initElementsFromCollection(c); heapify(); }