Java 实现动态阵列的更好方法
有了java 我能做到Java 实现动态阵列的更好方法,java,arrays,Java,Arrays,有了java 我能做到 String[] args = {"FOO", "BAR"}; 我不能这样做 String[] args; args={"FOO", "BAR"}; 这样做 String[] args = null; if(condition){ String[] foobar = { "Foo", "Bar" } ; args = foobar; }else{ String[] fooferBarer = { "Foofer", "Barer"
String[] args = {"FOO", "BAR"};
我不能这样做
String[] args;
args={"FOO", "BAR"};
这样做
String[] args = null;
if(condition){
String[] foobar = { "Foo", "Bar" } ;
args = foobar;
}else{
String[] fooferBarer = { "Foofer", "Barer" } ;
args = fooferBarer;
}
//use args here .....
这看起来很奇怪…有更好的方法吗
感谢阅读。要在声明行以外的行上实例化数组,可以使用:
String[] args;
args = new String[] {"FOO", "BAR"};
是的,可以使用动态数组最好将ArrayList用于动态数组。您可以将ArrayList用作
ArrayList<String> args = new ArrayList<String>();
args.add("Foo");
args.add("Bar");
ArrayList args=new ArrayList();
参数添加(“Foo”);
参数添加(“条”);
任何初始化数组的方法。所以
String[] args;
args = new String[int size];
因为String[]args={“FOO”,“BAR”}
是Java语法的一条规则。您可以使用这些值启动数组,但是args={“FOO”,“BAR”}
在语法上是错误的,因为这是Java,而不是Python。所以你应该像这样初始化数组args=newstring[]{“FOO”,“BAR”}代码>您不能执行此操作:
String[] args;
args={"FOO", "BAR"};
因为在执行此操作之前,args没有初始化args={“FOO”,“BAR”}
解决方法:
(一)
(二)
3) 我建议您这样做,而不是使用字符串[]use List,因为对我来说更灵活,看起来更好:
List<String> args = new ArrayList<String>(); // in a case Java 7 use new ArrayList<>();
args.add("foo");
args.add("bar");
List args=new ArrayList();//在Java 7中使用新的ArrayList();
参数添加(“foo”);
参数添加(“条”);
您不能这样做,因为如果您有一行声明和实例化字符串
数组,则会调用隐式new
。因此,您必须显式调用new
进行实例化
考虑以下代码:
String[] args;
现在,args
只是一个参考变量,并不指向任何对象。要指向一个对象,您必须显式地调用new
以实例化它:
args = new String[] {"FOO", "BAR"};
或者您可以使用ArrayList
,其中使用数组作为数据结构
String[] args;
args = new String[] {"FOO", "BAR"};