【发布时间】:2014-10-22 04:03:37
【问题描述】:
我需要解析一些网站以获取用户列表及其帖子。 用户由 UserIds 表示,帖子由 PostIds 表示,它们实际上是整数。 所以我为这样的用户创建了一个类:
class User {
private int userId;
private List<Integer> postList;
//...
}
然后我遇到了一个问题。 该站点提供了一个 api,它返回一个帖子结构列表,如:
class Post {
int postId;
int postAuthorId;
String postText;
//...
}
所以我应该得到一个帖子,搜索我的用户集中是否已经有帖子作者(用户),如果没有,则将新用户和帖子 ID 添加到用户集,如果是 - 将帖子 ID 添加到该用户的列表中帖子。
首先我想使用HashSet - 因为快速添加和搜索方法。但后来我意识到我无法从HashSet 获得所需的用户。接下来我想到了TreeSet,它实现了NavigableSet,所以我可以使用TreeSet.ceiling(user)。它返回对象,所以我可以修改它。一切都很好,但HashSet 比TreeSet 快得多。
所以问题是,如果有某种HashSet 可以返回特定的对象,比如它是否正在实现NavigableSet?
或者我应该以某种方式重写我的代码?将不胜感激。
【问题讨论】:
-
所以你想通过用户访问HashSet?
-
您是否有理由不使用将用户 ID 映射到用户的
HashMap? -
@Compass 谢谢你的好主意,我是集合实际使用的新手,地图对我的目的真的很有用!
标签: java collections hashset