我有一个小问题,关于如何创建未知大小的数组。 我想最好的方法是使用 java.util.ArrayList; 我的问题是,区别是什么:
ArrayList client_Catalog = new ArrayList<>();
和
List<> list = new ArrayList<>();
顺便说一下我的程序我试图创建一个空列表,我将存储客户信息,因此,该类的对象,我不知道最终的大小。
答案 0 :(得分:2)
没有长度未知的数组。您要么拥有一个固定长度的数组,要么List
具有灵活的大小。
侧面评论
请记住,String[]
可以包含对任意大小的字符串数组的引用,并且该数组可以更改,但您无法添加它。您只能将之前的内容复制到更大的数组,然后填充剩下的位置。
List
是Interface。 ArrayList
是其中一项实施。
ArrayList client_Catalog = new ArrayList<>();
说:让client_Catalog
成为ArrayList
并让它先为空。另一方面,你有:
List<> list = new ArrayList<>();
表示让list
成为List
的任何实现。它可以是ArrayList
,LinkedList
或其他任何实现它。您唯一保证的是该项目将包含List
接口的所有方法。
现在如何处理泛型。 List
是generic
。有一天,有人认为没有理由为每种数据类型实现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
。