多重映射和匿名值

时间:2011-03-06 18:09:22

标签: java

我希望创建一个TreeMap的实例,其键的类型为String,值为。{ 输入ArrayList <String>

Map<String, List<String>> directory = new TreeMap<String, List<String>>();  
String[] names = {"Anne","Ben","Charles","Dawn","Edward"};  

for (int i = 0; i < names.length; i++) {  
    directory.put(names[i], new ArrayList<String>());  
}  

我的问题在这里涉及以下代码的第5行。传递一个匿名对象(在这种情况下由new ArrayList()给出)作为put()方法的实际参数是否可接受/最佳实践?我的理由是,根据地图的性质,仍然可以通过以下方式达到这些对象:

directory.get("Anne");

3 个答案:

答案 0 :(得分:2)

我没有看到任何错误。事实上,我甚至没有理由将这样的事情称为“匿名”。你只是避免声明一个你永远不会使用的变量(即对该对象的引用 - 你仍在创建对象)。

Java中没有“匿名”对象。有匿名类,即没有名称的类。对象没有“名称”的概念。根据需要,可以通过一个或多个引用简单地引用它。

答案 1 :(得分:0)

根本没有错。我一直都在使用它。

答案 2 :(得分:0)

在代码中,为每个名称创建一个新的ArrayList对象。这是你想做的吗?是否是最佳做法取决于您要做的事情,最好的做法是存储,例如这些人拥有的宠物的名字(每个人的宠物清单)。