初始化和命名,Java中的ArrayList
我有几个对象要存储在一个arrayList中,它表示一条汇编语言指令(例如Add、Jump等)。对于给定的指令,每个ArrayList中的对象都是常量,因此我只需要在加载时将给定指令的每个对象加载到适当的ArrayList中一次 令人厌烦的是,在将每个对象添加到arrayList之前,我需要为它们命名:初始化和命名,Java中的ArrayList,java,initialization,Java,Initialization,我有几个对象要存储在一个arrayList中,它表示一条汇编语言指令(例如Add、Jump等)。对于给定的指令,每个ArrayList中的对象都是常量,因此我只需要在加载时将给定指令的每个对象加载到适当的ArrayList中一次 令人厌烦的是,在将每个对象添加到arrayList之前,我需要为它们命名: static { ... ArrayList<CodeFrag[]> intIntGtrEqlProtoCode = new Arra
static {
...
ArrayList<CodeFrag[]> intIntGtrEqlProtoCode = new ArrayList<CodeFrag[]>();
...
intIntGtrEqlProtoCode.add(intIntGtrEqlInst1);
CodeFrag[] intIntGtrEqlInst2 = {Subtract};
intIntGtrEqlProtoCode.add(intIntGtrEqlInst2);
CodeFrag[] intIntGtrEqlInst3 = {Duplicate};
...
}
静态{
...
ArrayList intIntGtrEqlProtoCode=新的ArrayList();
...
intIntGtrEqlProtoCode.add(intIntGtrEqlInst1);
CodeFrag[]intIntGtrEqlInst2={Subtract};
intIntGtrEqlProtoCode.add(intIntGtrEqlInst2);
CodeFrag[]intIntGtrEqlInst3={Duplicate};
...
}
我有一种感觉,有一种方法可以避免所有这些极其乏味的命名。有人能给我指出吗?你可以这样做:
CodeFrag[] arr = {Subtract, Duplicate, Foo, Bar};
for (CodeFrag c : arr)
intIntGtrEqlProtoCode.add(new CodeFrag[]{c});
另外,如果所有数组都有长度1
,您不能用列表替换它吗?那你就可以这么做了
intIntGtrEqlProtoCode = new ArrayList<CodeFrag>(Arrays.asList(Subtract, Duplicate, Foo, Bar));
intIntGtrEqlProtoCode=newarraylist(Arrays.asList(Subtract,replicate,Foo,Bar));
intIntGtrEqlProtoCode.add(新的CodeFrag[]{Subtract})
?