我想创建一个包含MyObject链接列表的列表。
LinkedList<MyObject>[] list = new LinkedList<MyObject>[n];
但它显示:
Main.java:19: error: generic array creation LinkedList<MyObject>[] list = new LinkedList<MyObject>[n];
如何创建此类列表?
答案 0 :(得分:1)
您为什么要创建LinkedLists数组?毕竟它已经是一个List。
将您的代码更改为
List <MyObject> list = new LinkedList<MyObject>();
如果您想要这些LinkedLists
的集合,那么我建议您创建一个新的List
List <LinkedList<MyObject>> theBigList = new ArrayList <> ();
然后您可以添加到此列表
theBigList.add (list);
答案 1 :(得分:1)
列表列表如下:
List<List<MyObject>> listList = new LinkedList<>();
List<MyObject> list1 = new LinkedList<>();
List<MyObject> list2 = new LinkedList<>();
listList.add(list1);
listList.add(list2);
List<MyObject> list3 = listList.get(0);
一个LinkedLists数组看起来像:
@SuppressWarnings("unchecked")
List<MyObject>[] listArray = new LinkedList[n];
List<MyObject> list1 = new LinkedList<>();
List<MyObject> list2 = new LinkedList<>();
listArray[0] = list1;
listArray[1] = list2;
List<MyObject> list3 = listArray[0];
两者都假定钻石操作符(<>
)是Java 7的快捷方式,但可以替换为完整类型(第二种情况为新LinkedList<MyObject>
,第一种情况为LinkedList<List<MyObject>>
)。
并且数组无法实例化泛型类型(由于各种奇怪的内部结构)。请参阅示例http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5105887