在Java中向反向ArrayList中插入值

在Java中向反向ArrayList中插入值,java,arraylist,Java,Arraylist,我正在尝试将用户给定的值插入Java中的ArrayList中。值应按降序排列,以便如果用户提供例如6、2、19,则输出应为19、6、2。我的想法是插入第一个元素,然后将所有其他输入与其他元素进行比较并相应地插入 getScore()从另一个类接收一个值,rank()一次放置一个值 private ArrayList<Integer> sortedInts = new ArrayList<>(); private String rank() { if(sorted

我正在尝试将用户给定的值插入Java中的ArrayList中。值应按降序排列,以便如果用户提供例如6、2、19,则输出应为19、6、2。我的想法是插入第一个元素,然后将所有其他输入与其他元素进行比较并相应地插入

getScore()从另一个类接收一个值,rank()一次放置一个值

private ArrayList<Integer> sortedInts = new ArrayList<>();

private String rank() {
    if(sortedInts.isEmpty()){
        sortedInts.add(0, getScore());
    } else {
        for (int i = 0; i <= sortedInts.size(); i++) {
            if(getScore() >= sortedInts.get(i) && getScore() <= sortedInts.get(i+1))
                sortedInts.add(i, getScore());
        }
    }
    int position = sortedInts.indexOf(getScore());
    if(position % 10 == 0) {
        if(position == 0)
            return "1st";
        else
            return position + "st";
    }
    else if(position % 10 == 1){
        if(position == 1)
            return "2nd";
        else
            return position + "nd";
    }
    else if(position % 10 == 2) {
        if(position == 2)
            return "3rd";
        else
            return position + "rd";
    }
    else
        return position + "th";
}
private ArrayList sortedinds=new ArrayList();
私有字符串秩(){
if(sortedInts.isEmpty()){
添加(0,getScore());
}否则{

对于(int i=0;i=SortedDints.get(i)&&getScore(),为什么必须手动执行此操作?只需在arrayList中添加数字,然后对集合进行排序。排序(arrayList,Collections.reverseOrder());您可以改为使用
SortedSet
和使用
Collections.reverseOrder();
Collections.reverse(列表)将扭转局面list@mangusta-是的,刚刚看到它并删除了我的评论,然后我看到了你,顺便说一句,如果
getScore()
每次调用都返回一个新值,代码是不正确的-他一遍又一遍地调用它,而不是分配返回值一次。但不清楚他的问题是什么