2012-09-23 97 views
1

我想创建一个方法来创建ArrayLists,并在现有ArrayList中的元素后面命名每个元素。
赞,ArrayList原来是(abc, def, ghi, jkl) 我想创建四个ArrayLists,名为abc,def,ghi和jkl。使用另一个ArrayList中的字符串命名ArrayList

如何将这些字符串(abc,def)取出并用它们命名新的ArrayLists?

我想:

ArrayList original.get(0) = new ArrayList(); 

但是Eclipse说misplaced construct

我想:

String newName = original.get(count); 
ArrayList (newName) = new ArrayList(); 

但它说the left hand side of of an assignment must be a variable

如果我走了newName出括号:

String newName = original.get(count); 
    ArrayList newName = new ArrayList(); 

它说duplicate local variable newName

+0

你根本无法在Java中做到这一点 – MaVRoSCy

回答

6

在Java中,你不能命名基于另一个变量的值的变量。编译器必须在编译时知道所有变量的名称。但是,方法(如original.get(0))的返回值和变量的值仅在运行时已知。

就这样说,你可以使用Map<String, List<String>>类来做你想用动态变量名做的事情。您只需将您的ArrayList添加到在String“名称”上索引的Map即可。

+0

我认为我不应该这么做,因为我们在学校教育中没有接近覆盖。 如果我只是有一个字符串变量: String aString =“TheName” 我想创建一个名为“TheName”的新ArrayList。 有没有更简单的方法来从该字符串中获取名称,并用它命名我的新对象? –

+0

@ChrisKekaha不可以,你不能使用变量的内容来命名另一个变量。正如我在第一段所述,必须在编译时知道,而另一个只在运行时才知道。 –

+0

@ChrisKekaha如果我的答案比你想象的更复杂,那么我认为你正试图解决错误的问题。如果您可以提供更多的细节(也许是一个新问题),我们很乐意为您提供一些关于如何解决问题的指导。 –

相关问题