我在游标的帮助下从sqlite数据库中获取对象.我想将它们存储在一个arraylist中.问题是我不提前知道我返回数据的大小.那么如何将它们放入arraylist?
码:
public Student findAll()
{
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select sid, name, age from t_student", null
);
if(cursor.moveToNext())
return new Student(cursor.getInt(cursor.getColumnIndex("sid")), cursor.getString(cursor.getColumnIndex("name")), cursor.getInt(cursor.getColumnIndex("age")));
return null;
}
Main:
ArrayList<Student> studentArrayList = new ArrayList<Student>();
studentArrayList.add(dao.findAll()); //doing this will only return the first object from the database
Run Code Online (Sandbox Code Playgroud)
每个ArrayList实例都有一个容量.容量是用于存储列表中元素的数组的大小.它始终至少与列表大小一样大.当元素添加到ArrayList时,其容量会自动增加.除了添加元素具有恒定的摊销时间成本这一事实之外,未指定增长策略的详细信息.
这将帮助您以更好的方式理解ArrayList.
public List<Student> findAll() {
List<Student> studentArrayList = new ArrayList<Student>();
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select sid, name, age from t_student", null
);
while(cursor.moveToNext()) {
studentArrayList.add(new Student(cursor.getInt(cursor.getColumnIndex("sid")), cursor.getString(cursor.getColumnIndex("name")), cursor.getInt(cursor.getColumnIndex("age"))));
}
return studentArrayList ;
}
ArrayList<Student> studentArrayList = new ArrayList<Student>();
studentArrayList=findAll();
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
| 归档时间: |
|
| 查看次数: |
4199 次 |
| 最近记录: |