试图说的是什么评论 – 不要重新发明轮子. Java不是汇编程序或C语言,它足以处理这些琐碎的案例.
这是一个简单的代码,它表明简单的Set可以轻松处理你的词汇:
import java.util.Set;
import java.util.TreeSet;
public class Work {
public static void main(String[] args) {
long startTime=System.currentTimeMillis();
Set allWords=new TreeSet();
for (int i=0; i<20000;i++){
allWords.add(getRandomWord());
}
System.out.println("Total words "+allWords.size()+" in "+(System.currentTimeMillis()-startTime)+" milliseconds");
}
static String getRandomWord() {
int length=3+(int)(Math.random()*10);
String r = "";
for(int i = 0; i < length; i++) {
r += (char)(Math.random() * 26 + 97);
}
return r;
}
}
在我的电脑上显示
Total words 19875 in 47 milliseconds
正如您所看到的,20,000个中的125个单词是重复的.并且不仅花费时间以非常低效的方式生成20,000个单词,而且还存储它们以及检查重复项.