gpt4 book ai didi

java - 无法获取数组列表内的 count 个元素

转载 作者:行者123 更新时间:2023-12-02 01:30:22 26 4
gpt4 key购买 nike

在此示例中,我有一个 Firebase 数据库,因此我可以从数据库中获取元素和键。我使用了一些库和函数来处理数据库。问题是在我获取数据并将其放入名为 comments_keys 的 ArrayList 中之后,我使用循环打印其中的项目,然后打印: I/Get_KEY::comments 连续四次。

现在为什么不打印 Count equals 4?

我想获取 ArrayList 内部项目数的值。我怎么做?

@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
HashMap < String,
HashMap < String,
HashMap < String,
String >>> values = (HashMap < String, HashMap < String, HashMap < String, String >>> ) child.getValue();

ArrayList < String > comments_keys = new ArrayList < String > (values.keySet());
int Count = 0;

for (String k: comments_keys) {
players.put(k, String.valueOf(values.get(k)));
Log.i("GetValues :", players.values().toString());
Log.i("Get_KEY: ", k);
Count += 1;
}
Log.i("GetCount) : ", String.valueOf(Count));
}
}
// Log Cat Get_KEY: 
05-17 11:09:37.455 25024-25024/com.ahmedcomm.firebaseapp I/Get_KEY:: comments
05-17 11:09:37.455 25024-25024/com.ahmedcomm.firebaseapp I/Get_KEY:: comments
05-17 11:09:37.455 25024-25024/com.ahmedcomm.firebaseapp I/Get_KEY:: comments
05-17 11:09:37.455 25024-25024/com.ahmedcomm.firebaseapp I/Get_KEY:: comments

// Log Cat Get_KEY:
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetValues :: [{-LeT9FJNoQaGIz04t5Ux={status=1, rate=4, comment=yes}}]
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetValues :: [{-LeTA3vsxwsKuhvcITVE={status=0, rate=2, comment=i don't like it}, -LeWdgceDbsf4eKkQW6B={status=0, rate=3, comment=okys}}]
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetValues :: [{-LeTAVMVV2aZcpZ3UelP={status=1, rate=5, comment=i like it}}]
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetValues :: [{-LeTBX4SIWPAoYzCdgCq={status=1, rate=5, comment=ملعب ممتاز}, -LeTCUtavtH3HzNc_CBY={status=0, rate=3, comment=not pad}, -LeTCDwJ9Ptc-DC9RMxE={status=1, rate=5, comment=good}}]

// Log Cat GetCount:
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetCount) :: 1
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetCount) :: 1
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetCount) :: 1
05-17 11:23:38.005 25410-25410/com.ahmedcomm.firebaseapp I/GetCount) :: 1

最佳答案

我不知道你为什么要使代码复杂化。这个奇怪的 Actor 有什么作用?

(HashMap < String, HashMap < String, HashMap < String, String >>> ) child.getValue();

要简化一切,您可以这样做:

class MyClass {
// This is your model that matches the data in Firebase
// put here the properties as in DB
// for example
String name;
// and so on.
}

List<MyClass> myClassList = new ArrayList<>();

for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
MyClass myClass = snapshot.getValue(MyClass.class);
myClassList.add(myClass);
}

int size = list.size(); // this is the count

关于java - 无法获取数组列表内的 count 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183509/

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