Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在字符串的ArrayList上使用选择排序_Java_Sorting - Fatal编程技术网

Java 在字符串的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++)

我有一个程序,计算从txt文件中提取的单词的频率,并将它们存储在ArrayList中。我非常不熟悉使用选择排序,但这是我被要求使用的排序类型。我已经看过多种选择排序,但我的排序在这条线上的某个地方还不够

这是我真正喜欢的那种

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);
}