以下哪種添加到HashMap的方法更有效(考慮時間和空間效率)?將「新」置於put方法或使用中間變量更有效嗎?
方式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")));
以下哪種添加到HashMap的方法更有效(考慮時間和空間效率)?將「新」置於put方法或使用中間變量更有效嗎?
方式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")));
兩者完全相同。運行時
new Music(Files.getMusic("bar/bold.mp3"));
您在內存中創建一個對象,並返回對其的引用。無論您是否將該參考文件臨時存儲在foo
中,然後將其傳遞到HashMap
或沒有發生變化(即使這樣做,這也會被優化掉)。
感謝您的解釋:)將在10分鐘內被接受。 – Israelg99
完全相同。本地「臨時」變量在Java中基本上是「免費的」。所以第一個序列是首選,因爲它更易於閱讀和理解。 –