解释代码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); } } } //刷新列表适配器 // personAdapter.notifyDataSetChanged(); return persons; }
时间: 2023-11-22 19:51:49 浏览: 35
这段代码主要是一个方法,用于从数据库中读取患者的信息并将其放入一个Person对象中,最后将所有的Person对象放入一个List集合中。具体的实现过程如下:
首先,定义了一个persons集合,用于存放所有的Person对象。
然后,获取了当前登录医生的ID,打开数据库连接,查询Patient表中所有医生ID为当前登录医生ID的患者信息。
接着,判断查询结果是否为空,如果不为空则进入while循环,循环条件为1==1,即一直循环直到遍历完所有的查询结果。
在while循环中,先获取当前行对应的id、name和alarm字段的值,将其放入Person对象中,并判断该对象是否已经存在于persons集合中,如果不存在则将其添加到集合中。
最后,返回persons集合。
需要注意的是,这段代码中的dbHelper1、Person和PersonAdapter都没有给出具体的实现,所以无法确定其具体作用。
相关问题
List<Integer> persons=new ArrayList<>();是什么意思
这行代码定义了一个泛型为 `Integer` 的 `List` 类型的变量 `persons`,并初始化为一个空的 `ArrayList` 对象。`List` 是 Java 集合框架中的一种接口,它表示一个元素有序、可重复的集合。`ArrayList` 是 `List` 接口的一个实现类,它基于数组实现,支持动态扩容。在这里,`List<Integer>` 表示这个集合中只能存储整型数据,也就是说,只能往 `persons` 中添加 `Integer` 类型的元素。这个变量的命名 `persons` 可以理解为这个集合中存储的是人员信息,每个人员信息用一个整数来表示。
怎么把List<Map<String,Object>>转换成List<对象>
你可以通过循环遍历List<Map<String,Object>>,然后将每个Map中的键值对映射为一个对象的属性,最终将这些对象添加到一个新的List中返回。以下是一个简单的示例代码:
假设有一个Person类,具有name和age两个属性:
```java
public class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
// getter和setter方法
}
```
现在有一个List<Map<String,Object>>,包含多个人的信息:
```java
List<Map<String,Object>> personMaps = new ArrayList<>();
Map<String,Object> person1 = new HashMap<>();
person1.put("name", "张三");
person1.put("age", 20);
personMaps.add(person1);
Map<String,Object> person2 = new HashMap<>();
person2.put("name", "李四");
person2.put("age", 25);
personMaps.add(person2);
```
你可以将这个List转换为List<Person>,代码如下:
```java
List<Person> persons = new ArrayList<>();
for (Map<String,Object> personMap : personMaps) {
String name = (String) personMap.get("name");
Integer age = (Integer) personMap.get("age");
Person person = new Person(name, age);
persons.add(person);
}
```
现在,persons中存储了两个Person对象,分别表示“张三(20岁)”和“李四(25岁)”。