所以我和一个熟人打赌了。关于使用Java开发需要更多空间的内容。
ArrayList<Player>
在使用Bukkit(Minecraft)API编码时,玩家包括位置,库存,健康栏,食物级别,xplevel等等。但是,字符串只是字符的汇编。 这就是我认为
的原因ArrayList<String>
如果你只需要玩家的名字,比玩家的ArrayList更令人愉快。
我的熟人告诉我有关对象的引用,并且意味着它完全相同,因为我通过这样做获得了玩家的名字
player.getName();
因为&#34;对象引用&#34;东西,没有更多的空间或处理能力。
哪个论文属实?
答案 0 :(得分:1)
假设你的内存已经已经的Player
实例,你将把这些现有的对象添加到这个列表中,然后它来了同一件事:两者都是对象引用列表(String
或Player
)。对象引用很小(see this answer for details,但我们说的是32位或64位)。这里的关键是,如果您已经拥有Player
个实例,那么添加第二个引用便宜;它不会创建对象的副本,只是引用的副本,它很小。
当然,如果你不已经拥有Player
个实例并且只为这个列表创建它们,那些实例将包含名称和其他信息,那么当然需要更多的记忆。