private List<Person> addPersonList() { List<Person> persons = new ArrayList<>(); String login_id = com.example.yj.bluetoothapplication.doctorview.LoginActivity.doctor_login; dbHelper1.getWritableDatabase(); SQLiteDatabase db = dbHelper1.getWritableDatabase(); Cursor cursor = db.query("Patient", new String[]{"id", "name", "alarm"}, "doctor_id=?", new String[]{login_id}, null, null, null); System.out.println(cursor.getCount()); if (cursor.moveToFirst()){ while (1 == 1){ //从表中获取id对应的名字、年龄、性别和医生工号 String id = cursor.getString(cursor.getColumnIndexOrThrow("id")); String name = cursor.getString(cursor.getColumnIndexOrThrow("name")); boolean alarm = cursor.getInt(cursor.getColumnIndexOrThrow("alarm")) == 1; if(cursor.isLast()){ break; //取出信息后判断游标是否已经遍历 } //读取信息后游标移至下一行 cursor.moveToNext(); // 将查询结果放入person对象中 Person person = new Person(id, name, alarm); if (!persons.contains(person) && person.getName() != null) { persons.add(person); } } } return persons; }如果cursor中有2条数据,最终persons会有几个对象
时间: 2023-12-20 17:03:27 浏览: 60
如果cursor中有2条数据,最终persons会有2个对象。因为在while循环中,每次将查询结果放入person对象中,只有当persons列表中不包含该person对象并且person对象的名称不为null时才将其添加到persons列表中。在这个过程中,如果有重复的person对象或person对象的名称为null,则不会被添加到persons列表中。因此,最终persons列表中只会包含有效的不重复的person对象。
相关问题
private ArrayList<Person> persons; public AdressBook() { persons = new ArrayList<Person>(); }是什么意思?
这段代码是定义了一个名为"AddressBook"的类,其中包含了一个名为"persons"的ArrayList(数组列表)对象。该数组列表中存储的是"Person"类的对象。
除此之外,还定义了一个无参构造函数"AddressBook()",在该函数中初始化了"persons"数组列表对象。这样,当创建AddressBook类的实例时,就会自动创建一个空的persons数组列表对象。
List<Integer> persons=new ArrayList<>();是什么意思
这行代码定义了一个泛型为 `Integer` 的 `List` 类型的变量 `persons`,并初始化为一个空的 `ArrayList` 对象。`List` 是 Java 集合框架中的一种接口,它表示一个元素有序、可重复的集合。`ArrayList` 是 `List` 接口的一个实现类,它基于数组实现,支持动态扩容。在这里,`List<Integer>` 表示这个集合中只能存储整型数据,也就是说,只能往 `persons` 中添加 `Integer` 类型的元素。这个变量的命名 `persons` 可以理解为这个集合中存储的是人员信息,每个人员信息用一个整数来表示。
阅读全文