Java-排序ArrayList-气泡排序
我必须对包含客户购买频率的arrayList进行排序。因此,我可以按升序或降序显示输出。然而,我不太确定我遗漏了什么,但它根本没有对元素进行排序。我真的很感激任何意见或反馈 这就是我到目前为止所做的:Java-排序ArrayList-气泡排序,java,sorting,arraylist,bubble-sort,Java,Sorting,Arraylist,Bubble Sort,我必须对包含客户购买频率的arrayList进行排序。因此,我可以按升序或降序显示输出。然而,我不太确定我遗漏了什么,但它根本没有对元素进行排序。我真的很感激任何意见或反馈 这就是我到目前为止所做的: for(int i=0; i<customers.size(); i++) { for(int k= i+1; k <customers.size(); k++) { if((customers.get(k)).compa
for(int i=0; i<customers.size(); i++)
{
for(int k= i+1; k <customers.size(); k++)
{
if((customers.get(k)).compareTo(customers.get(i)) < 0)
{
Customer temp = customers.get(i);
customers.set(i, customers.get(k));
customers.set(k,temp);
}
}
System.out.println(customers.get(i));
}
保持K=i,在内部循环中尝试以下方法:
for(int k= i; k <customers.size() - i -1; k++)
{
如果要打印已排序的列表System.out.printlncustomers.geti;必须在排序循环之外。在该循环之后添加另一个循环以打印结果您有一些错误
// I tested with List<String>, String temp.
public static void sort(List<Customer> customers) {
for (int i = 0; i < customers.size() - 1; i++) {
for (int k = i + 1; k < customers.size(); k++) {
// Compare left to right, not right to left.
if (customers.get(i).compareToIgnoreCase(customers.get(k)) > 0) {
Customer temp = customers.get(i);
customers.set(i, customers.get(k));
customers.set(k, temp);
}
}
}
}
试试这个
int n = yourArray.size();
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (yourArray.get(j) < yourArray.get(j + 1)) {
int temp = yourArray.get(j);
yourArray.set(j, yourArray.get(j + 1));
yourArray.set(j + 1, temp);`
}
我认为关键是ifcustomers.getk.compareTignoreCaseCustomers.geti<0。我建议您调试一下,看看它是否能像您期望的那样工作。您的代码甚至都无效,编译Java代码。为什么不使用Collections.sort而不是重新发明轮子呢?还有,int=k+1是int=k+1对吗?int=k+1-什么?这不可能是你真正的代码。向我们展示,如果不是你真正的代码,那么至少是你实际测试过的代码。我需要为这个程序使用冒泡排序算法。如果k==I,你不需要比较第k个对象和第I个对象。
Alice
bob
Bob
Bob
Carol
int n = yourArray.size();
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (yourArray.get(j) < yourArray.get(j + 1)) {
int temp = yourArray.get(j);
yourArray.set(j, yourArray.get(j + 1));
yourArray.set(j + 1, temp);`
}