java - 如何为相同的用户标识选择相同的颜色

标签 java hash consistent-hashing string-hashing

我有一个库,其中传递了一个字符串用户 ID,因此基于该字符串用户 ID,我只需要选择这三种颜色中的一种。

RED
BLUE
PINK

假设 String userid 是 12345 那么例如它可以选择 RED 那么下次如果传递相同的 userid 12345 那么它应该只选择相同的红色。 另一个例子,如果 String userid 是 98765,那么在这种情况下它可以选择 BLUE 所以下次如果传递相同的用户 id 98765,那么它应该只选择相同的 BLUE 颜色。

想法是针对相同的用户 ID,它应该始终选择相同的颜色。它不应该是第一次选择一种颜色然后第二次选择其他颜色的同一个用户 ID。

我可以在这里对用户 ID 使用什么样的哈希技术,以便我可以始终为相同的用户 ID 选择相同的颜色?

public enum Colors {
    RED, BLUE, PINK;        


    private String pickColor(String userid) {


    }
}

最佳答案

这样就可以了:

int userColor = userName.hashCode() % numberOfColors;

关于java - 如何为相同的用户标识选择相同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35440934/

相关文章:

java - 如何防止Java中的整数输入?

asp.net-mvc - 维护消息完整性

c - 复杂结构的哈希

MongoDB 和一致性哈希

java - 一致性哈希如何工作?

java - Cygwin 和 Java

java - 如何将符合 RFC 5322 标准的电子邮件地址解析并规范化为其组件 ("John Smith"、john.smith+tag、(评论)、域)?

java - 删除没有界面的复制/粘贴代码

ruby-on-rails - 在 Ruby 中使用注入(inject)?

Python hash_ring 分布不均匀,什么是一致的哈希替代方案?