Java 气泡排序数组列表

Java 气泡排序数组列表,java,arraylist,bubble-sort,Java,Arraylist,Bubble Sort,我有一个从用户读入arraylist的对象数组,当我试图根据字符串参数对数据进行冒泡排序时,程序会遇到运行时错误,代码不会执行 Resort temp; while (finished = true) { finished = false; for (int index = 0; index < numResorts - 1; index++) { String nam1 = resorts.get(index).getNam

我有一个从用户读入arraylist的对象数组,当我试图根据字符串参数对数据进行冒泡排序时,程序会遇到运行时错误,代码不会执行

Resort temp;
    while (finished = true) {
        finished = false;
        for (int index = 0; index < numResorts - 1; index++) {
            String nam1 = resorts.get(index).getName();
            String nam2 = resorts.get(index + 1).getName();
            if (nam1.compareTo(nam2) > 0) {
                temp = resorts.get(index);
                resorts.set(index, resorts.get(index + 1));
                resorts.set(index + 1, temp);
                //resorts.get(index) = resorts.get(index + 1);
                //resorts.get(index + 1) = temp;
                finished = true;
            }
        }
    }
度假村温度;
while(finished=true){
完成=错误;
对于(int index=0;index0相比){
temp=度假村获取(索引);
resorts.set(索引,resorts.get(索引+1));
设置(索引+1,温度);
//resorts.get(index)=resorts.get(index+1);
//获取(索引+1)=温度;
完成=正确;
}
}
}

您注意到这里有一个无限循环吗?以下
while
循环:

while (finished = true)
。。。由于该赋值,表达式的计算结果始终为
true
,因此始终无限执行。这就是为什么不应该比较布尔值的原因。简单地做:

while (finished)  // this is enough.

你注意到这里有一个无限循环吗?以下
while
循环:

while (finished = true)
。。。由于该赋值,表达式的计算结果始终为
true
,因此始终无限执行。这就是为什么不应该比较布尔值的原因。简单地做:

while (finished)  // this is enough.
以下是我的解决方案:

List<Integer> sortedlists = new ArrayList<Integer>();
public List<Integer> sortBs(List<Integer> al) {
    sortedlists = al;
    for(Integer out = al.size()-1; out>1; out--) {
        for(Integer i = 0; i < out;i ++){
            int n = i+1;
            if(sortedlists.get(i) > sortedlists.get(n)) {
                Integer temp = sortedlists.get(i);
                sortedlists.set(i, sortedlists.get(n));
                sortedlists.set(n, temp);
            }
        }
    }

    return sortedlists;
}
List sortedList=new ArrayList();
公共列表分类(列表al){
分类列表=al;
对于(整数out=al.size()-1;out>1;out--){
for(整数i=0;isortedList.get(n)){
整数温度=分类列表。获取(i);
sortedlists.set(i,sortedlists.get(n));
分类列表设置(n,温度);
}
}
}
返回分类列表;
}
以下是我的解决方案:

List<Integer> sortedlists = new ArrayList<Integer>();
public List<Integer> sortBs(List<Integer> al) {
    sortedlists = al;
    for(Integer out = al.size()-1; out>1; out--) {
        for(Integer i = 0; i < out;i ++){
            int n = i+1;
            if(sortedlists.get(i) > sortedlists.get(n)) {
                Integer temp = sortedlists.get(i);
                sortedlists.set(i, sortedlists.get(n));
                sortedlists.set(n, temp);
            }
        }
    }

    return sortedlists;
}
List sortedList=new ArrayList();
公共列表分类(列表al){
分类列表=al;
对于(整数out=al.size()-1;out>1;out--){
for(整数i=0;isortedList.get(n)){
整数温度=分类列表。获取(i);
sortedlists.set(i,sortedlists.get(n));
分类列表设置(n,温度);
}
}
}
返回分类列表;
}