首页 > 解决方案 > 对我的对象数组列表进行选择排序不起作用 JAVA

问题描述

我的排序算法有问题,它对前两张卡片进行排序,但随后就搞砸了。数组列表是deck的一个属性,所以我必须使用deck类中的方法来访问它,例如get card和get deck。这是我的代码:

for (int i = 0; i < 4; i++) {                                       
    minVal = deck.getCard(i).getVal();                              
        for (int j = i ; j < 5 ; j++ ) {

            if (deck.getCard(j).getVal() < minVal)                  
            {

                minVal = deck.getCard(j).getVal();                  

                for (int k = i ; k < 5 ; k++) {
                    if (deck.getCard(k).getVal() == minVal)         
                    { 

                        buffer = deck.getCard(i);                   
                        deck.set(i, deck.getCard(k));               
                        deck.set(i + 1, buffer);
                    }
                }
            }
        }
    }

这是我的输出:

Original Cards:    
3
2
14
8
6
Updated cards:
2   
3
6
6
8

标签: javaselection-sort

解决方案


int temp;
for (int i = 0; i < getCard(i).length(); i++) {
    for (int j = 1 ; j < getCard(i).length() ; j++ ) {
        if (deck.getCard(j-1).getVal() < deck.getCard(j).getVal()) {
            temp = deck.getCard(j-1).getVal();
            deck.getCard(j-1).getVal() = deck.getCard(j).getVal();
            deck.getCard(j).getVal() = temp;
        }
    }
}

推荐阅读