gpt4 book ai didi

java - For 循环未完全运行

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

每次我运行此代码时 for循环在随机次数的迭代后停止,但不是 100 次。如果我注释掉从 firebase 检索数据的部分, for循环完全运行。我可以知道循环在中间停止的原因吗?

firstslot = new ArrayList<>();

for (i =1; i<=100; i++)
{

final String string = String.valueOf(i);

reference.child(string)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name")) && (dataSnapshot.hasChild("age"))) {
String check = "BOOKED";
item = new book(string, deptid, date, check, Color.CYAN);
firstslot.add(item);
} else {

String check = "";
item = new book(string, deptid, date, check, Color.TRANSPARENT);
firstslot.add(item);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

}

RecyclerView myrv = findViewById(R.id.booksrecyclerview);
bookadapter myadapter = new bookadapter(this, firstslot);
myrv.setLayoutManager(new GridLayoutManager(this, 5));
myrv.setAdapter(myadapter);
}

最佳答案

混契约(Contract)步和异步执行会导致这种情况 - 除非理解这个基本条件,否则您可能会遇到困难。使用回调来指示,每当查询完成时...同步 for 循环不会切断它,因为它会创建竞争条件。

想一想,它是一个 100 个 AsyncTask

关于java - For 循环未完全运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604893/

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