使用bubblesort的java排序数组列表

bla*_*tar 0 java sorting

过去5个小时我一直在研究这个问题.由于某种原因,我没有得到我正在寻找的结果.该方法应该使用冒泡排序按数量对项目的Arraylist进行排序.不确定我是否犯了错误,但它似乎只对前几个项目进行排序,并且只列出其余部分,而不是按顺序排列.这是代码

 public static void bubblesrt(ArrayList<Drinks> list)
  {
        Drink temp;
        if (list.size()>1) // check if the number of orders is larger than 1
        {
            for (int x=0; x<list.size(); x++) // bubble sort outer loop
            {
                for (int i=0; i < list.size()-i; i++) {
                    if (list.get(i).compareTo(list.get(i+1)) > 0)
                    {
                        temp = list.get(i);
                        list.set(i,list.get(i+1) );
                        list.set(i+1, temp);
                    }
                }
            }
        }

  }
Run Code Online (Sandbox Code Playgroud)

这是compareTo()方法,它位于Drinks类中

  public int compareTo(Drinks z) 
  {
      int res=0;
        if (quantity < z.quantity) {res=-1;  }
        if (quantity > z.quantity){res=1;}
      return res;
  }
Run Code Online (Sandbox Code Playgroud)

现在我好累,我准备好放弃它.任何帮助,将不胜感激 .先感谢您.

soc*_*a23 6

尝试改变

list.add(i,list.get(i+1) );
Run Code Online (Sandbox Code Playgroud)

list.set(i,list.get(i+1) );
Run Code Online (Sandbox Code Playgroud)

for (int i=0; i < list.size()-i; i++)
Run Code Online (Sandbox Code Playgroud)

for (int i=0; i < list.size() - x - 1; i++)
Run Code Online (Sandbox Code Playgroud)