如何在Java中输入自己的数据类型?



我想输入一个数组,其中输入的数量是不固定的。

输入如下

3
3 ab ab bd
2 ab na
5 ab bl jhg fhd djbj

我提供了一个样本输入,输入类似于一个问题。

初始输入数为3。

那么每行可以有I个输入,即第一个3个输入字符串,第二个2个输入字符串,第三个5个输入字符串。请帮助我如何存储输入。

我认为这个问题是基于一个误解。

如果您将数据放入ArrayList(或大多数其他List类),您不需要告诉列表它将有多大。只需调用add将每个元素添加到列表中。ArrayList实现负责调整1的大小。这也适用于列表的列表。

话虽如此,如果你真的需要N元素2分配一个ArrayList空间,这样做的方法是:

ArrayList<Something> list = new ArrayList<>(N);

(注意这里设置的是容量而不是列表的大小。列表将返回0作为列表的大小…直到你添加了元素。)

从输入文件中组装一个列表的列表的方法是使用嵌套循环。外部循环填充外部列表。内部循环读取由列表元素组成的行,并填充内部列表。


另一方面…如果你正在构建一个数组,或者一个数组的数组,那么每个组件数组必须用正确的大小创建,因为数组不能调整大小。


1 -在某些情况下,告诉列表可能包含多少元素会更有效。但在大多数情况下,性能差异并没有实际的区别。小心过早的优化!!
2 -注意,如果您的大小估计不正确,设置不正确的容量实际上可能对空间利用率和性能有害。

使用列表的列表

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
list.add(new ArrayList<String>());
list.get(0).add("Hello");
list.get(0).add("Me is");
list.get(0).add("Ded");
list.add(new ArrayList<String>());
list.get(1).add("Eh");

第一个元素有3个元素,第二个元素有1个。

最新更新