大小未知的数组

时间:2016-11-15 21:04:41

标签: java

我有一个小问题,关于如何创建未知大小的数组。 我想最好的方法是使用 java.util.ArrayList; 我的问题是,区别是什么:

ArrayList client_Catalog = new ArrayList<>();

List<> list = new ArrayList<>();

顺便说一下我的程序我试图创建一个空列表,我将存储客户信息,因此,该类的对象,我不知道最终的大小。

3 个答案:

答案 0 :(得分:2)

没有长度未知的数组。您要么拥有一个固定长度的数组,要么List具有灵活的大小。

侧面评论
请记住,String[]可以包含对任意大小的字符串数组的引用,并且该数组可以更改,但您无法添加它。您只能将之前的内容复制到更大的数组,然后填充剩下的位置。

ListInterfaceArrayList是其中一项实施。

ArrayList client_Catalog = new ArrayList<>();

说:让client_Catalog成为ArrayList并让它先为空。另一方面,你有:

List<> list = new ArrayList<>();

表示让list成为List的任何实现。它可以是ArrayListLinkedList或其他任何实现它。您唯一保证的是该项目将包含List接口的所有方法。

现在如何处理泛型。 Listgeneric。有一天,有人认为没有理由为每种数据类型实现List并决定引入泛型。您必须声明此列表的类型。它完成了那些<>括号。

例如,要创建ArrayList的{​​{1}},请写下:

String

由于它只是一个Q&amp; A区,我不会教你一切,但我的答案有一些关于列表的基础知识。我还决定附上一些官方教程和文档的链接,以帮助您学习。如果有什么东西要我延伸,请在评论中提问。

答案 1 :(得分:0)

任何选项都可以满足您的要求。 最好使用List接口作为方法的返回类型。在这种情况下,它将抽象列表的实际实现,即方法的调用者不需要知道实际的实现。

答案 2 :(得分:-1)

之间

_

[A-Z_0-9]

不会有任何区别。两者都会像你一样工作和锻炼。唯一的区别是,在第二个例子中,不仅可以有一个ArrayList client_Catalog = new ArrayList<>(); 。但也有例如List<> list = new ArrayList<>(); 或实现List interface的其他对象。

在您的情况下,如果您想100%依赖它,请选择上部以确保它始终为ArrayList