存储jSessionId和userId的最佳数据结构

时间:2016-03-26 08:49:48

标签: java data-structures

我需要存储像<jSessioId, userId>这样的对。 jSessionId是唯一的但userId不是唯一的(乘法登录)。

我需要执行以下操作:

 void add(jSessioId, userId)
 userId getUserId(jSessionId)
 void removeByJSessionId (jSessionId)
 Set<userId> getAllUserId()

我尝试使用HashMap<jSessioId, userId>但在这种情况下getAllUserId()需要在每次请求此数据时将值转换为设置。我试图使用额外的设置来存储userId,但由于有很多额外的代码,这对我来说也不合适。

我想知道存储此类数据的最佳解决方案是什么。

**更新 方法的用例:

  • add - 登录操作
  • getUserId - 每次请求操作
  • removeBySessionId - 注销/会话监听器
  • getAll - 在代码的不同位置使用了很多次

在当前的解决方案中,我正在执行hashmap和set的add操作。我正在寻找更好的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用Set userIds = new HashSet(Map.values());

答案 1 :(得分:0)

你能维护2个数据结构吗?

void add(jsessionId,userId)会将这两个参数添加到HashMap中,就像你现在正在做的那样,并将userId添加到一个集合中?