Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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_Bubble Sort - Fatal编程技术网

Java 对具有多个输入的ArrayList中的字符串使用气泡排序

Java 对具有多个输入的ArrayList中的字符串使用气泡排序,java,bubble-sort,Java,Bubble Sort,我在ArrayList上使用气泡排序时遇到问题,无法按字母顺序对它们进行排序 我试图阅读(并复制)我在网上找到的一些气泡排序方法,但到目前为止没有任何效果 private void listUsers() { int x; User temp; User temp2; if (users.isEmpty()) { System.out.println("Error: no users in register"); } else {

我在ArrayList上使用气泡排序时遇到问题,无法按字母顺序对它们进行排序

我试图阅读(并复制)我在网上找到的一些气泡排序方法,但到目前为止没有任何效果

private void listUsers() {
    int x;
    User temp;
    User temp2;
    if (users.isEmpty()) {
        System.out.println("Error: no users in register");
    } else {
        for (User item : users) {               
            sortedUsers.add(item);
            if (!sortedUsers.isEmpty()) {
                for (x = 0; x < sortedUsers.size(); x ++) {
                    if (sortedUsers.get(x).getName().compareTo(sortedUsers.get(x+1).getName()) > 0) {
                        temp = sortedUsers.get(x);
                        temp2 = sortedUsers.get(x+1);
                        sortedUsers.set(x, temp2);
                        sortedUsers.set(x+1, temp);
                    }
                }
            }
            //System.out.println(item);
            System.out.println(item);

        }
    }
}
private void listUsers(){
int x;
用户温度;
用户temp2;
if(users.isEmpty()){
System.out.println(“错误:寄存器中没有用户”);
}否则{
对于(用户项:用户){
分拣机。添加(项目);
如果(!sortedUsers.isEmpty()){
对于(x=0;x0){
温度=分拣机。获取(x);
temp2=分拣机。获取(x+1);
分拣装置(x,temp2);
分拣装置(x+1,温度);
}
}
}
//系统输出打印项次(项);
系统输出打印项次(项);
}
}
}
到目前为止,我得到了一个java.lang.IndexOutOfBoundsException,我知道使用x+1时,我试图获得没有项的索引,但不知道如何修复它

用于(x=0;x

您正在将每个项目与下一个项目进行比较。因此,在进行比较时,您不能超出倒数第二(n-1)行(
compareTo(sortedUsers.get(x+1)

行(
if(sortedUsers.get(x.getName().compareTo)(sortedUsers.get(x+1).getName())>0)
您正在检查
x+1
索引中的值,这可能超出了范围