java什么更高效、更紧凑:一组庞大的linkedlist变量,还是一个包含这些变量的二维arraylist?
我想创建一个大矩阵(n乘n),其中每个元素对应(某些对象的)LinkedList
我也可以
创建n*n个单独的链表,并在循环中使用eval()对其进行命名,循环将遍历两个维度(或类似的维度),以便最终得到LinkedList_1_1、LinkedList_1_2等。每个都有一个唯一的变量名。基本上,完全跳过矩阵
创建一个ArrayList的ArrayList,然后将一个链表推送到每个元素中
如果我想节省时间,请向我推荐一种方法;在我以后的代码中,当我想引用单个LinkedList时,空间和访问的便利性。方法1的易访问性很差,因为每当我想要访问特定的链表时,我都必须使用eval
我的直觉告诉我,方法2是最好的方法,但我究竟如何形成我的初始化
# 1 楼答案
既然您知道要开始的大小,为什么不使用数组呢?不幸的是,Java泛型阻止数组元素本身成为具体的泛型类型,但可以使用通配符:
或者稍微内存效率更高,只需一个数组:
然后,您需要对每个访问进行强制转换——使用
@SuppressWarnings
,因为您知道它总是有效的(假设您适当地封装了它)。我把它放在一个地方:当然,在这两种情况下,如果需要,您都需要用空链表填充数组。(如果链接列表中的几个不会有任何节点,那么你可能只想懒散地填充它们。)p>
我肯定不会生成一个包含数百个变量的类。这将使通过程序访问列表变得非常痛苦,从很多方面来说,这基本上都是一个坏主意