我无法将我的arraylist作为参数传递给泛型方法。知道我在这里做错了什么吗?
ArrayList<Integer> list50k = new ArrayList<>();
list50k.add(1);
list50k.add(5);
list50k.add(8);
list50k.add(7);
selectionSort(list50k); // error is in this line
然后我尝试将数组发送到方法并得到错误。 这是方法:
public static <T extends Comparable<T>> void selectionSort(T[] list){...}
答案 0 :(得分:2)
问题是ArrayList<T>
不是数组,这意味着它无法转换为T[]
。
如果您想传递selectionSort(List<T>)
,您的方法签名可以是ArrayList
。
你也可以将ArrayList
转换为T[]
,但是java的语法有点恼人,除非你真的需要一个数组,否则我不推荐。
答案 1 :(得分:0)
试试这个
selectionSort(list50k.toArray(new Integer[list50k.size()]));
从Integer[]
获取ArrayList<Integer>
,根据您的方法签名使其成为有效参数。