如何使用列表对数字进行排序?爪哇

时间:2018-12-08 21:15:28

标签: java

我对列表等非常陌生,目前正在尝试学习它们。 我使用它们编写了一个程序,并且一切运转良好,直到我没有对列表中的数字进行排序。现在,每当我到达代码的这一部分时,它就停止工作:

if ((st.get(i))>(st.get(k))) {
    int temp=st.get(k);
    st.add(k,st.get(i));
    st.add(i,temp);
}

您能帮我解决我做错了什么以及如何解决吗?

2 个答案:

答案 0 :(得分:0)

您的问题描述“刚刚停止工作”有点含糊。我假设您没有得到异常,而只是得到了错误的输出。代码(此部分)的问题在于,您不是交换列表中放错了位置的元素,而是在相应的索引处添加了这些元素的副本。而不是add(index, element),您应该使用set(index, element)

if (st.get(i) > st.get(k)) {
    int temp = st.get(k);
    st.set(k, st.get(i));
    st.set(i, temp);
}

当然,排序功能的其余部分可能还存在其他问题。另外,如注释中所述,在实现自己的冒泡排序或选择排序或这是一个很棒的练习时,在所有实际应用中,您应该使用几种内置排序方法之一,例如Collections.sort

答案 1 :(得分:0)

如果您想使用Java 8,有一种简单的方法可以在整数列表中对num进行排序。这是众多示例之一。

public class Main {

    public static void main(String[] args) {
        List<Integer> nums = Arrays.asList(1, 4, 5, 29, 30, 11, 2, 6);
        nums.sort(Comparator.naturalOrder());
        System.out.println(nums);
    }
}