是否可以创建一个链表数组?还是链表的arraylist?我一直在到处寻找,似乎得到了相互矛盾的答案。我已经看到“否”的答案表明它无法完成,因为您无法制作一系列可以取消引用的事物。我已经看到“是”的答案表明它可以完成并且它们在那里结束。
提前致谢。
是否可以创建一个链表数组?还是链表的arraylist?我一直在到处寻找,似乎得到了相互矛盾的答案。我已经看到“否”的答案表明它无法完成,因为您无法制作一系列可以取消引用的事物。我已经看到“是”的答案表明它可以完成并且它们在那里结束。
提前致谢。
如果我理解正确,您基本上想要制作一个二维数组,但后半部分是一个链表。
import java.util.ArrayList;
import java.util.LinkedList;
public class Test
{
public static void main(String[] args)
{
LinkedList one = new LinkedList();
LinkedList two = new LinkedList();
LinkedList three = new LinkedList();
ArrayList<LinkedList> array = new ArrayList<LinkedList>();
array.add(one);
array.add(two);
array.add(three);
// .. do stuff
}
}
Java 不关心数组或列表中的对象是什么,因此没有什么反对将另一个数组或列表放入其中。
最糟糕的方法:创建一个原始列表数组:
List[] lstString = new List[10];
for(int i = 0; i < lstString.length; i++) {
lstString[i] = new LinkedList<String>();
lstString[i].add(Integer.toString(i));
}
for(int i = 0; i < lstString.length; i++) {
for(Iterator it = lstString[i].iterator(); it.hasNext(); ) {
System.out.println(it.next());
}
}
更好的方法:使用包含 List 的包装类并创建它的数组:
public class Holder {
List list = new LinkedList();
}
//...
Holder[] holders = new Holder[10];
for(int i = 0; i < holders; i++) {
holders[i] = new Holder();
}
更好的方法:使用List<List<Data>>
:
List<List<Data>> lstOfListOfData = new ArrayList<List<Data>>();
for(int i = 0; i < 10; i++) {
lstOfListOfData.add(new LinkedList<Data>());
}
我已经看到“不”的答案表明它无法完成,因为您无法制作一系列可以取消引用的事物
数组的成员值是否无关紧要null
,如果您仍然可以“访问”该成员并对其进行实例化,则它不会被取消引用。所以是的,你可以。