在Java中向反向ArrayList中插入值
我正在尝试将用户给定的值插入Java中的ArrayList中。值应按降序排列,以便如果用户提供例如6、2、19,则输出应为19、6、2。我的想法是插入第一个元素,然后将所有其他输入与其他元素进行比较并相应地插入 getScore()从另一个类接收一个值,rank()一次放置一个值在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
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()
每次调用都返回一个新值,代码是不正确的-他一遍又一遍地调用它,而不是分配返回值一次。但不清楚他的问题是什么