import java.io.File;
public class HashMkDir{
public static void main(String[] args) throws Exception {
//测试是否只创建255个文件夹
for(int min = 0;min<1000000;min++){
//生成随机数
int a = (int) (Math.random()*100000000);
//转换成String 类型
String s = Integer.toString(a);
//调用 hashCode 方法把传入的字符串转换成一个0-255之间的数
String hashpath = Integer.toString(hashCode(s,255));
//创建文件夹
File file = new File("D:/hashMKDir/"+hashpath);
if (!file.exists()) {
file.mkdirs();
}
System.out.println(hashCode(s,255));
}
}
/**
* @param key: A String you should hash
* @param HASH_SIZE: An integer
* @return an integer
*/
public static int hashCode(String keys,int HASH_SIZE) {
char[] key = keys.toCharArray();
long sum = (int)key[0];//sum * 33可能会超出int范围
for(int i = 1; i < key.length; i++) {
sum = sum * 33 % HASH_SIZE + (int)key[i];//即使求余,否则超出long范围
}
return (int)(sum % HASH_SIZE);
}
}
效果图:脑补!!!!