java如何在单个变量中管理多个数据列表,并轻松访问每个列表

java如何在单个变量中管理多个数据列表,并轻松访问每个列表,java,list,multidimensional-array,arraylist,Java,List,Multidimensional Array,Arraylist,我有一个场景,我必须在java应用程序中处理多个数据列表。。。 现在每个列表中可以有任意数量的元素。。。此外,这些名单的数量最初也不得而知 哪种方法最适合我的场景?我可以想到列表的arraylist,或列表的列表或列表的arraylist等(即arraylist+list/arraylist+arraylist/list+list的组合)。。。我想知道的是-- (1) 以上哪一项(或您自己的解决方案)最容易管理-即存储/获取数据 (2) 上面哪一项将使用最少的内存量 是一个接口。是列表的一个实现

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

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

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

是一个接口。是
列表
的一个实现

构建
列表时
必须选择特定的具体类型(例如
数组列表
)。使用列表时,如果可能,最好针对接口编程。这可以防止代码与特定的
列表
实现之间的紧密耦合,允许您在以后根据需要更轻松地更改到另一个
列表
实现。

是一个接口。是
列表
的一个实现


构建
列表时
必须选择特定的具体类型(例如
数组列表
)。使用列表时,如果可能,最好针对接口编程。这可以防止代码与特定的
列表
实现之间的紧密耦合,如果您愿意,可以在以后更轻松地更改为另一个
列表
实现。

我将我的变量声明为:

List<List<DataType>> lists = new ArrayList<List<DataType>>();
List List=new ArrayList();
通过接口类型的变量访问列表方法会有轻微的时间损失,但我认为,如果您认为合适的话,可以灵活地更改类型,这将大大平衡这种时间损失。(例如,如果您决定使
列表
不可变,可以通过
java.util.Collections
中的一个方法来实现,但如果您已将其声明为
数组列表
,则不能这样做)


请注意,
列表
必须包含实现
列表
的某些具体类的实例,因为(正如其他人所指出的)
列表
是一个接口,而不是一个类。

我将我的变量声明为:

List<List<DataType>> lists = new ArrayList<List<DataType>>();
List List=new ArrayList();
通过接口类型的变量访问列表方法会有轻微的时间损失,但我认为,如果您认为合适的话,可以灵活地更改类型,这将大大平衡这种时间损失。(例如,如果您决定使
列表
不可变,可以通过
java.util.Collections
中的一个方法来实现,但如果您已将其声明为
数组列表
,则不能这样做)


请注意,
列表
必须包含实现
列表
的某些具体类的实例,因为(正如其他人所指出的)
列表
是一个接口,而不是一个类。

如果您知道如何确定要处理的列表,请使用列表映射

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

通过这种方式,您将避免必须循环通过外部元素才能到达实际列表。哈希映射的性能比迭代器好

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

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

通过这种方式,您将避免必须循环通过外部元素才能到达实际列表。哈希映射的性能比迭代器好

列表是一个接口,ArrayList是一个实现。列表与ArrayList作为比较没有任何意义。除非需要特定于ArrayList的方法,否则可以使用List作为引用类型。List是接口,ArrayList是实现。列表与ArrayList作为比较没有任何意义。除非您需要特定于ArrayList的方法,否则可以使用List作为引用类型。我同意使用接口编程通常更好。然而,值得注意的是,在大多数虚拟机中,与声明具体类型相比,访问声明为
List
的对象的方法会有轻微的性能损失。我同意根据接口编程通常更好。然而,值得注意的是,在大多数虚拟机中,与声明具体类型相比,访问声明为
List
的对象的方法会有轻微的性能损失。