以下哪种方法可以更有效地添加HashMap(考虑时间和空间效率)?
方式1:
Music foo = new Music(Files.getMusic("bar/bold.mp3"));
HashMap.put("rock", foo);
方式2:
HashMap.put("rock", new Music(Files.getMusic("bar/bold.mp3")));
答案 0 :(得分:1)
这是完全相同的。 Java对象通过引用传递,您在两种情况下都创建了完全相同数量的对象。
答案 1 :(得分:1)
两者完全相同。运行时
new Music(Files.getMusic("bar/bold.mp3"));
您在内存中创建一个对象,并返回对它的引用。是否在将foo
传递给HashMap
之前将其暂时存储在{{1}}之内并没有真正产生影响(即使它会这样做,也会优化掉)。