有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java如何在单个变量中管理多个数据列表,并方便地访问每个列表

我有一个场景,我必须在java应用程序中处理多个数据列表。。。 现在每个列表中可以有任意数量的元素。。。此外,这些名单的数量最初也不得而知

哪种方法最适合我的场景?我可以想到列表中的arraylist,或列表中的列表或列表中的列表等(即arraylist+list/arraylist+arraylist/list+list的组合)。。。我想知道的是--

(1)以上哪项(或您自己的解决方案)最容易管理,即存储/获取数据 (2) 以上哪一项将使用最少的内存


共 (3) 个答案

  1. # 1 楼答案

    如果你知道一种方法来确定你要处理的列表,使用列表地图

    Map<String,List<?>> = new HashMap<String,List<?>>();
    

    这样可以避免通过循环外部元素来访问实际列表。哈希映射的性能优于迭代器

  2. # 2 楼答案

    ^{}是一个接口^{}List的一个实现

    当你建造一个List时,你必须选择一个特定的混凝土类型(例如ArrayList)。当你使用列表时,如果可能的话,最好针对接口编程。这可以防止代码与特定的List实现之间的紧密耦合,允许您在以后更容易地更改为另一个List实现

  3. # 3 楼答案

    我将我的变量声明为:

    List<List<DataType>> lists = new ArrayList<List<DataType>>();
    

    通过接口类型的变量访问列表方法会有轻微的时间损失,但我认为,这与您在适当的情况下更改类型的灵活性非常平衡。(例如,如果您决定使lists不可变,您可以通过java.util.Collections中的一个方法来实现,但如果您已将其声明为ArrayList<List<DataType>>,则不能这样做。)

    请注意lists必须保存实现List<DataType>的某个具体类的实例,因为(正如其他人所指出的)List是一个接口,而不是一个类