Collections.addAll,Queue <Integer>和int []

One*_*mir 2 java

以下代码虽然看起来很正确但不起作用:

import java.util.*;

public class Jaba {

    public static void main(String args[]) {
        Random rand = new Random();
        int[] array = new int[10];
        for (int i = 0; i < array.length; ++i) {
            array[i] = rand.nextInt(30);
        }
        Queue<Integer> que = new PriorityQueue<Integer>();
        Collections.addAll(que, Arrays.asList(array));
    }

}
Run Code Online (Sandbox Code Playgroud)

应该修复什么?

aio*_*obe 13

Arrays.asList获取一系列对象.(这是唯一的选择,因为它无法返回List<int>.)

传递int[]给时Arrays.asList,它将被解释为包含一个的单个数组int[].

你必须这样做

Collections.addAll(que, Arrays.asList(array))失败的原因是它需要一个T...第二个参数,它实际上是一个数组而不是List.