Java 安卓:用什么代替光标

Java 安卓:用什么代替光标,java,android,foreach,Java,Android,Foreach,在我的应用程序中,我使用游标从SQLite数据库获取信息,如下所示: Cursor contacts = dataBase.select("SELECT _idContact FROM Contacts"); if (contacts.getCount() > 0) { if (IMLayout.getVisibility() == View.VISIBLE) { int k = contacts.getCount(); for (int j = 0; j

在我的应用程序中,我使用游标从SQLite数据库获取信息,如下所示:

Cursor contacts = dataBase.select("SELECT _idContact FROM Contacts");

  if (contacts.getCount() > 0) {

   if (IMLayout.getVisibility() == View.VISIBLE) {


    int k = contacts.getCount();
    for (int j = 0; j < k; j++) {
     if (j == 0) {
      contacts.moveToFirst();
     } else {
      contacts.moveToNext();
     }
Cursor contacts=dataBase.select(“select _idcontactfrom contacts”);
如果(contacts.getCount()>0){
if(IMLayout.getVisibility()==View.VISIBLE){
int k=contacts.getCount();
对于(int j=0;j

我想要的是优化“for”使用增强型for循环。为此,我必须使用数组或其他,但不能使用游标,因为游标不适用于增强型for循环。如何将游标转换为arrayList?

增强型for循环仅适用于集合、iterables和数组,而
游标
不适用于这些内容


您只需使用提供的方法,就像您目前所做的那样。或者,您必须将光标的内容吸收到一个集合中,然后您只需为自己做更多的工作。

您可以大大简化此逻辑,如下所示:

Cursor contacts = dataBase.select("SELECT _idContact FROM Contacts");
while (contacts.moveToNext()) {
    // do stuff with this database entry
}

好的,非常感谢。我想这可能是一个优化的可能性。好的,我来试试;)谢谢