如何解决将 int 数组中的所有元素添加到 Java 中的优先级队列的最佳方法
目前我有:
int[] costs=new int[]{1,2,3,4,5,6};
PriorityQueue<Integer> pq=new PriorityQueue<>();
for(int cost:costs){
pq.add(cost);
}
还有其他更好的选择吗?
解决方法
您可以使用 Java 8 Stream 在一个语句中完成。这是否“更好”是一个见仁见智的问题。
为了比较,这里并排:
int[] costs = new int[] {1,2,3,4,5,6};
// Java 5.0 or later
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int cost : costs)
pq.add(cost);
// Java 8 or later
PriorityQueue<Integer> pq = Arrays.stream(costs).boxed()
.collect(Collectors.toCollection(PriorityQueue::new));
如果 costs
是 Integer[]
,情况会有所不同:
Integer[] costs = new Integer[] {1,6};
PriorityQueue<Integer> pq = new PriorityQueue<>(Arrays.asList(costs));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。