Java 是否可以在listview中反转顺序?

Java 是否可以在listview中反转顺序?,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,当我从firebase实时数据库中获取数据时,它会自动按升序列出,但我试图将我放入arraylist中的值按相反顺序列出,而不是按升序列出 使用listview时,是否可能获得值的相反顺序? 目前使用的代码是: Query query = userRef.orderByChild("totalNumberOfSteps"); ValueEventListener valueEventListener = new ValueEventListener() { @Ov

当我从firebase实时数据库中获取数据时,它会自动按升序列出,但我试图将我放入arraylist中的值按相反顺序列出,而不是按升序列出

使用listview时,是否可能获得值的相反顺序?
目前使用的代码是:

    Query query = userRef.orderByChild("totalNumberOfSteps");
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                String username = ds.child("username").getValue(String.class);
                long totalNumberOfSteps = ds.child("totalNumberOfSteps").getValue(Long.class);
                Log.d(TAG , username + " - Steps: " + totalNumberOfSteps);
                arrayList.add(new String(username + "  -  " + "steps:  " + totalNumberOfSteps));

                arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , arrayList);

                listView.setAdapter(arrayAdapter);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG , databaseError.getMessage()); //Don't ignore errors!
        }
    };
    query.addListenerForSingleValueEvent(valueEventListener);}}
首选输出:

John Doe II - Steps: 111
John Doe IV - Steps: 88
John Doe I - Steps: 79
John Doe V - Steps: 12
John Doe III - Steps: 0
John Doe VI - Steps: 0

添加
集合时。反转(arrayList)对于代码,输出为:

John Doe II - Steps: 111
John Doe IV - Steps: 88
John Doe III - Steps: 0
John Doe VI - Steps: 0
John Doe V - Steps: 12
John Doe I - Steps: 79

在将ArrayList提供给ArrayAdapter之前,可以通过以下操作反转ArrayList:

Collections.reverse(arrayList);
在您的情况下,在将其反转并将其传递给ArrayAdapter的构造函数之前,请复制
arrayList

ArrayList<> tmpArr = new ArrayList<>(arrayList);
Collections.reverse(tmpArr);
arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , tmpArr );
ArrayList tmpArr=新的ArrayList(ArrayList);
收藏。反面(tmpArr);
arrayAdapter=新的arrayAdapter(leadboard.this,android.R.layout.simple\u list\u item\u 1,tmpArr);

否则,每次调用onDataChange()时,
arrayList
对象都会反转,其顺序会混淆。

添加
集合时。反转(arrayList)
对于我的代码,它确实颠倒了顺序,但不是完全颠倒,我将编辑我的问题,让您在反转ArrayList之前查看复制ArrayList时的结果是什么<代码>ArrayList tmpArr=新的ArrayList(ArrayList);收藏。反面(tmpArr)(使用tmpArr作为适配器)在不添加该行的情况下,该行按升序排列,如问题中列出的当前输出所示。确定。使用我之前评论的代码会有什么结果?(对ArrayAdapter使用tmpArr)通过使用tmpArr,我是否应该删除当前正在使用的
ArrayAdapter
?现在有点困惑
ArrayList<> tmpArr = new ArrayList<>(arrayList);
Collections.reverse(tmpArr);
arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , tmpArr );