0

我正在循环一个列表以从列表数组中获取特定的 id:

这是我正在循环的列表:

for(int i =0 ;i<listOfIds.size();i++) {
    System.out.println("list of post_ids " + listOfIds.get(i));
}

循环后的输出是:

list of post_ids Model: com.soul.seeker.models.PostsCategories, table: 'posts_categories', attributes: {post_id=184}
list of post_ids Model: com.soul.seeker.models.PostsCategories, table: 'posts_categories', attributes: {post_id=185}

现在我想访问特定元素,即attributes: {post_id=185}. 我怎么做?

更新:类 List 的类型LazyList来自http://javalite.github.io/activejdbc/snapshot/

4

3 回答 3

1

由于您在 ActiveJDBC 模型上进行操作,因此您可以:

  PostsCategories c;   
  for(int i =0 ;i<listOfIds.size();i++) {
       if(listOfIds.get(i).get("post_id").equals(185))}
          c = listOfIds.get(i); 
          System.out.println("Found it: " + c);
       }
  }
于 2017-04-14T18:08:28.363 回答
1

我有一个想法,使用您想要的标准在循环中创建新对象,并在您想要的对象与列表中的对象之间使用等于,如下所示:

for(int i =0 ;i<listOfIds.size();i++) {
     my_object obj = new my_object ();
     obj.(set criteria you want )
     if(listOfIds.get(i).equals(obj)){
       "you got it";
     }
    System.out.println("list of post_ids " + listOfIds.get(i));
 }
于 2017-04-14T04:05:02.743 回答
0

实际上API上有方法。我以为这很正常List。所以无论如何,我是这样想的:

List postIds = listOfIds.collect("post_id");
String query2 = "Select * from post Where id IN (";
for(int i =0 ; i < postIds.size(); i++) {
  query2 = query2 + "'" +postIds.get(i) + "'" + ",";
}
query2 = query2.substring(0, query2.length()-1);
query2 = query2 + ")";
于 2017-04-14T17:59:36.380 回答