亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據變量的值對變量進行分類

根據變量的值對變量進行分類

倚天杖 2023-10-13 15:29:44
我有 5 個變量,其值如下。int john = 0;int caleb = 0;int justin = 0;int loic = 0;int lala = 0;DatabaseReference productRef = FirebaseDatabase.getInstance().getReference().child("Product");    productRef.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {            for (DataSnapshot ds: dataSnapshot.getChildren()){                String getName = ds.child("name").getValue(String.class);                if (getName.equals("john")){                    john++;                }else if (getName.equals("caleb")){                    caleb++;                }else if (getName.equals("justin")){                    justin++;                }else if (getName.equals("loic")){                    loic++;                }else if (getName.equals("lala")){                    lala++;                }            }        }        @Override        public void onCancelled(@NonNull DatabaseError databaseError) {        }    });從數據庫獲取數據后,我有:int john = 3;int caleb = 15;int justin = 30;int loic = 20;int lala = 0;我想要的是根據他們的價值觀將他們分類為第一,第二,第三......,有類似的東西。justin = 30;loic = 20;caleb = 15;john = 3;lala = 0;我正在使用java,Android studio。先感謝您。
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

因此,不要使用 5 個變量,而是以map這種方式初始化:


Map<String, Integer> map = new HashMap<>();

map.put("john", 0);

map.put("caleb", 0);

map.put("justin", 0);

map.put("loic", 0);

map.put("lala", 0);

然后,你的方法應該是:


@Override

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

    Integer currentCount = 0;

    for (DataSnapshot ds: dataSnapshot.getChildren()){

        String getName = ds.child("name").getValue(String.class);

        currentCount = map.get(getName);

        map.put(getName, currentCount+1);

    }

    //You can print your values using this

    List<Map.Entry<String, Integer>> entryList = new ArrayList<>(map.entrySet());

    entryList.sort(Map.Entry.comparingByValue(Comparator.reverseOrder()));


    for (Map.Entry<String, Integer> entry : entryList) {

        System.out.printf("%s = %s; \n", entry.getKey(), entry.getValue());

    }

}


查看完整回答
反對 回復 2023-10-13
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號