gpt4 book ai didi

java - 根据变量的值对变量进行分类

转载 作者:行者123 更新时间:2023-12-02 09:25:54 24 4
gpt4 key购买 nike

我有 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;

我想要的是根据他们的值(value)观将他们分类为第一,第二,第三......,有类似的东西。

justin = 30;
loic = 20;
caleb = 15;
john = 3;
lala = 0;

我正在使用java,Android studio。预先感谢您。

最佳答案

因此,不要使用 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());
}
}

关于java - 根据变量的值对变量进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com