gpt4 book ai didi

Java - 高效的集合管理

转载 作者:行者123 更新时间:2023-11-29 09:29:24 25 4
gpt4 key购买 nike

<分区>

假设我有理由要求通过多个值类型快速查找类实例,为了便于说明,我将使用游戏服务器作为示例。

假设服务器使用静态标识号处理用户。此号码用于与特定玩家进行交流和互动(即:私有(private)聊天、交易请求、战斗、公会邀请等)。

这需要经常使用通过他们的身份证号查找玩家,根据我目前的经验,最好的方法是这样的:(如果我错了请纠正我。)

HashMap<Integer, Player>

然而,在处理网络时,很多时候我还需要让播放器与网络 session 相关联,或者某些人可能更熟悉的“套接字”。看起来像这样:

HashMap<Connection, Player>

所以我想弄清楚的是,我应该走这条路吗:

HashMap<Integer, Player> playersById;
HashMap<Connection, Player> playersByConnection;

或者我应该像这样做一些更“粉碎”的事情:

HashMap<Object[], Player> playersOnline;

并且有Object[0]作为整数,Object[1]作为连接,然后使用查找期间所需的连接。

或者这两种方法都是低效和不正确的,是否有更好/更快的方法来通过 Integer 或 Connection 查找它们而不复制集合?

任何见解将不胜感激。

编辑:此外,有什么反对 HashSet<> 的吗?和一个 HashMap<>包含相同的类引用?我注意到 HashSet<>HashMap<> 的迭代效率高得多并一直保留一个 Map 用于查找和一个 Set 用于迭代,这是不好的做法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com