Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以将2D数组作为成员属性,但不在构造函数中初始化?_Java_Arrays_Initialization_Declaration - Fatal编程技术网

Java 是否可以将2D数组作为成员属性,但不在构造函数中初始化?

Java 是否可以将2D数组作为成员属性,但不在构造函数中初始化?,java,arrays,initialization,declaration,Java,Arrays,Initialization,Declaration,问题是我需要读取一个包含字符的文本文件,我需要在类内部将其构造成一个2D数组。但由于初始化时,我还必须指定如下值: int[] array; array = new int[] {2, 7, 9}; 因为在读取文件之前我不知道数组的大小,所以我可以创建一个作为成员的数组,但只能作为本地数组。因此,我求助于使用ArrayList,这是不可取的。我错过什么了吗 谢谢。ArrayList将是解决此问题的最佳选项,因为ArrayList的大小是可变的,这意味着无论数据大小如何,它都会更改其大小以匹配其

问题是我需要读取一个包含字符的文本文件,我需要在类内部将其构造成一个2D数组。但由于初始化时,我还必须指定如下值:

int[] array;
array = new int[] {2, 7, 9};
因为在读取文件之前我不知道数组的大小,所以我可以创建一个作为成员的数组,但只能作为本地数组。因此,我求助于使用ArrayList,这是不可取的。我错过什么了吗


谢谢。

ArrayList将是解决此问题的最佳选项,因为
ArrayList
的大小是可变的,这意味着无论数据大小如何,它都会更改其大小以匹配其包含的元素数量

有关创建和使用二维阵列列表的详细信息

希望这有帮助。

List array=new ArrayList();
List<Integer> array = new ArrayList<>();

array.add(2);
array.add(7);
array.add(9);
数组。添加(2); 增加(7); 增加(9);
或Java 9之前的版本:

List<Integer> array = new ArrayList<Integer>(Arrays.asList(2,7,9));
array.add(10);
List-array=newarraylist(Arrays.asList(2,7,9));
数组。添加(10);
或者在Java 9中:

List<Integer> array = List.of(2,7,9);
List数组=List.of(2,7,9);

当集合的总大小未知时,arraylist就是专门为此而设计的。创建arraylist的arraylist有什么问题?它相当于一个二维数组,但更灵活哇,我不知道这一点。为了回答您的问题,它的速度很慢(这并不重要,但可能会),而且我诚实地发现2d数组列表的语法比2d数组更令人困惑,尽管正如您所说,它更灵活。基本上就是这样@拉兹穆塔兹