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

How to pick same colors for same userid

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

RED
BLUE
PINK

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

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

我可以对此处的用户标识使用哪种哈希技术,以便我可以始终为相同的用户标识选择相同的颜色?

public enum Colors {
    RED, BLUE, PINK;        


    private String pickColor(String userid) {


    }
}

这样做就可以了:

int userColor = userName.hashCode() % numberOfColors;

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

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

/* write method to find enum by value */
}