Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 Bubblesort_Java_String_Bubble Sort - Fatal编程技术网

Java 带字符串的ArrayList Bubblesort

Java 带字符串的ArrayList Bubblesort,java,string,bubble-sort,Java,String,Bubble Sort,排序不起作用,它不按字母表对名称进行排序,我用int编写了一个冒泡排序算法,效果很好。你能帮助我吗?compareTo()方法是否有问题 public ArrayList sortByNames(ArrayList pList) { 足球运动员z; 对于(int i=0;i,您的实现是而不是BubbleSort!检查或事件稍微高级一点 publicstaticvoidbubblesort(列表pList){ 布尔完成=假; 对于(int i=pList.size();!done;i--){ 完成

排序不起作用,它不按字母表对名称进行排序,我用int编写了一个冒泡排序算法,效果很好。你能帮助我吗?compareTo()方法是否有问题

public ArrayList sortByNames(ArrayList pList)
{
足球运动员z;

对于(int i=0;i,您的实现是而不是BubbleSort!检查或事件稍微高级一点

publicstaticvoidbubblesort(列表pList){
布尔完成=假;
对于(int i=pList.size();!done;i--){
完成=正确;
对于(int j=0;j+1如果(pList.get(j.compareTo)(pList.get(j+1))看起来你是在比较pList.get(i)和pList.get(j+1),但是你是在用pList.get(j)替换pList.get(j)。我相信你应该比较第j个元素和第j+1个元素。谢谢你,我太深陷其中了,以至于忽略了它。就这样吧:-)
public ArrayList<FootballPlayer> sortByNames(ArrayList<FootballPlayer> pList)
    {
        FootballPlayer z;
        for(int i=0; i<pList.size(); i++)
        {
            for(int j=0; j<pList.size()-i-1;j++)
            {
                if((pList.get(i).getName()).compareTo(pList.get(j+1).getName())>0)
                {
                    z = pList.get(j);
                    pList.set(j, pList.get(j+1));
                    pList.set(j+1,z);
                }
            }
        }
        for(int i=0; i<pList.size(); i++)
        {
            System.out.print(pList.get(i).getName()+";");
            System.out.println("");
        }
         return pList;
    }
public static void bubbleSort(List<String> pList) {
    boolean done = false;

    for (int i = pList.size(); !done; i--) {
        done = true;

        for (int j = 0; j + 1 < i; j++) {
            if (pList.get(j).compareTo(pList.get(j + 1)) <= 0)
                continue;

            done = false;
            String tmp = pList.get(j);
            pList.set(j, pList.get(j + 1));
            pList.set(j + 1, tmp);
        }
    }
}
List<String> pList = new ArrayList<>();

for (int i = 0; i < 10; i++)
    pList.add(String.valueOf(i));

Collections.shuffle(pList);

System.out.println(pList);  // [0, 6, 7, 9, 5, 8, 4, 1, 3, 2]
bubbleSort(pList);
System.out.println(pList);  // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]