Java如何在单个变量中管理多个数据列表,并方便地访问每个列表
我有一个场景,我必须在java应用程序中处理多个数据列表。。。 现在每个列表中可以有任意数量的元素。。。此外,这些名单的数量最初也不得而知
哪种方法最适合我的场景?我可以想到列表中的arraylist,或列表中的列表或列表中的列表等(即arraylist+list/arraylist+arraylist/list+list的组合)。。。我想知道的是--
(1)以上哪项(或您自己的解决方案)最容易管理,即存储/获取数据 (2) 以上哪一项将使用最少的内存
# 1 楼答案
如果你知道一种方法来确定你要处理的列表,使用列表地图
这样可以避免通过循环外部元素来访问实际列表。哈希映射的性能优于迭代器
# 2 楼答案
^{} 是一个接口^{} 是
List
的一个实现当你建造一个
List
时,你必须选择一个特定的混凝土类型(例如ArrayList
)。当你使用列表时,如果可能的话,最好针对接口编程。这可以防止代码与特定的List
实现之间的紧密耦合,允许您在以后更容易地更改为另一个List
实现# 3 楼答案
我将我的变量声明为:
通过接口类型的变量访问列表方法会有轻微的时间损失,但我认为,这与您在适当的情况下更改类型的灵活性非常平衡。(例如,如果您决定使
lists
不可变,您可以通过java.util.Collections
中的一个方法来实现,但如果您已将其声明为ArrayList<List<DataType>>
,则不能这样做。)请注意
lists
必须保存实现List<DataType>
的某个具体类的实例,因为(正如其他人所指出的)List
是一个接口,而不是一个类