1

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

RED
BLUE
PINK

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

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

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

public enum Colors {
    RED, BLUE, PINK;        


    private String pickColor(String userid) {


    }
}
4

2 回答 2

2

这可以解决问题:

int userColor = userName.hashCode() % numberOfColors;
于 2016-02-16T19:14:19.973 回答
1

userName.hashCode() % Colors.values().length()会成功的。但是您可能必须更改您的枚举,以便

public enum Colors {
    RED (0),
    BLUE (1),
    PINK(2);

/* write method to find enum by value */
}
于 2016-02-16T19:21:23.440 回答