【发布时间】:2012-10-17 01:51:49
【问题描述】:
一个用 Java 编写的现有系统使用字符串的哈希码作为其负载平衡的路由策略。
现在,我无法修改系统,但需要生成共享相同哈希码的字符串来测试最坏的情况。
我从命令行提供这些字符串,并希望系统将所有这些字符串路由到同一个目的地。
是否可以生成大量共享相同哈希码的字符串?
为了明确这个问题:
String[] getStringsInSameHashCode(int number){
//return an array in length "number"
//Every element of the array share the same hashcode.
//The element should be different from each other
}
备注:任何 hashCode 值都是可以接受的。字符串是什么没有限制。但它们应该彼此不同。
编辑: String 类的覆盖方法是不可接受的,因为我从命令行提供了这些字符串。
仪器也不可接受,因为这会对系统产生一些影响。
【问题讨论】:
-
不能使用等号字符串?
-
查看String源码。
-
它们需要是具有不同值的字符串还是只是不同的字符串对象?
-
我知道 java 如何为字符串生成哈希码,但不知道如何生成具有相同哈希码的不同字符串文字。我不能覆盖任何字符串方法。 @代码大师