Java 对具有多个输入的ArrayList中的字符串使用气泡排序
我在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 {
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
索引中的值,这可能超出了范围