Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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声明ArrayList_Java_Arraylist_Declaration - Fatal编程技术网

Java声明ArrayList

Java声明ArrayList,java,arraylist,declaration,Java,Arraylist,Declaration,有时我看到ArrayList声明为 ArrayList<String> str; arrayliststr; 而其他时候我看到它是这样做的 ArrayList<String> str = new ArrayList<String>(); ArrayList str=new ArrayList(); 这两者有什么区别吗?或者是相同的,只是一个比另一个更可取吗?在第一个中,只有一个对象声明,而在第二个中,您也进行初始化 初始化对象的位置没有任何限制,只是在

有时我看到ArrayList声明为

ArrayList<String> str;
arrayliststr;
而其他时候我看到它是这样做的

ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();

这两者有什么区别吗?或者是相同的,只是一个比另一个更可取吗?

在第一个中,只有一个对象声明,而在第二个中,您也进行初始化


初始化对象的位置没有任何限制,只是在尝试访问对象之前应该进行初始化。

在第一个选项中,只有对象的声明,而在第二个选项中,您也会进行初始化

ArrayList<String> str
在初始化对象的位置上没有任何限制,除非它应该在尝试访问对象之前发生。

ArrayList str
ArrayList<String> str
这只是声明的变量

ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();
它是默认大小为10的str变量的初始化。

ArrayList str
这只是声明的变量

ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();

它是默认大小为10的str变量的初始化。

第一个代码片段只是声明
ArrayList
(此时为
null
),第二个代码片段是声明和实例化它。没有任何显著的区别,第二个版本更有用,所以您不会忘记实例化对象

第一个片段只是声明
ArrayList
(此时它是
null
),第二个片段是声明和实例化它。没有任何显著的区别,第二个版本更有用,所以您不会忘记实例化对象

我们可以这样说:private ArrayList someList=new ArrayList;作为实例变量,vs声明为实例变量,然后在构造函数中创建?这是违反惯例还是完全没有区别?它们是等价的。但有时您只需要声明属性并在以后根据需要实例化它,不一定在构造函数中;作为实例变量,vs声明为实例变量,然后在构造函数中创建?这是违反惯例还是完全没有区别?它们是等价的。但有时您只需要声明属性并在以后根据需要实例化它,而不一定在构造函数中。