Java 在字符串的ArrayList上使用选择排序
我有一个程序,计算从txt文件中提取的单词的频率,并将它们存储在ArrayList中。我非常不熟悉使用选择排序,但这是我被要求使用的排序类型。我已经看过多种选择排序,但我的排序在这条线上的某个地方还不够 这是我真正喜欢的那种Java 在字符串的ArrayList上使用选择排序,java,sorting,Java,Sorting,我有一个程序,计算从txt文件中提取的单词的频率,并将它们存储在ArrayList中。我非常不熟悉使用选择排序,但这是我被要求使用的排序类型。我已经看过多种选择排序,但我的排序在这条线上的某个地方还不够 这是我真正喜欢的那种 private void sort() { for (int i = 0; i < wordArray.size() - 1; i++) { for (int j = i + 1; j < wordArray.size(); j++)
private void sort() {
for (int i = 0; i < wordArray.size() - 1; i++) {
for (int j = i + 1; j < wordArray.size(); j++) {
if (wordArray.get(i).compareTo(wordArray.get(j)) == 1) {
Word temp = wordArray.get(i);
wordArray.set(i, wordArray.get(j));
wordArray.set(j, temp);
}
}
}
}
private void sort(){
对于(int i=0;i
这是我对字符串的比较(我很确定逻辑错误在这里)
public int compareTo(单词w){
for(int i=0;i
Word是一个具有字符串变量“Word”的类。任何提示都将不胜感激:)为什么不直接使用这个呢
public int compareTo(Word w) {
return this.word.compareTo(w.word);
}
这是怎么回事?i、 e.什么是不正确的行为?您是否尝试过在调试器中单步执行代码?上面的,add,a,advanced,ago,all,as,total,and,any,are,be。这是一个例子,它是如何目前的结果。文档中有大约138个独特的单词。我认为您不想自己实现排序。我还相信Word.compareTo可以简单地委托给Word的String.compareTo。如果你怀疑你的
compareTo
方法被破坏,为什么不尝试单独测试它?@ditkin这就是为什么我很难从谷歌找到有用的信息,但是我被明确告知手动使用选择排序。实际上,在将compareTo和我的排序更改为if(wordArray.get(I).compareTo(wordArray.get(j))>=1)之后,它可以工作:)谢谢!
public int compareTo(Word w) {
return this.word.compareTo(w.word);
}