例如,我有一个对象的arraylist。它是具有这些属性的学生对象
public Student(String name, String address)
{
if (name == null)
name = "";
if (address == null)
address = "";
this.name = name;
this.address = address;
lastAssignedNumber++;//Starts at 1000
studentNum = lastAssignedNumber;
// at first no credits have been taken (so no grade points either)
totalCredits = 0;
totalPoints = 0.0;
}
假设我已将多个对象添加到此arraylist中。我想根据studentNum编辑arraylist中的一个对象。
让我们调用arraylist mylist:
我知道mylist.get(studentNum)无法正常工作,因为它获取了列表的索引。有没有办法在studentNum上编辑某个对象?
答案 0 :(得分:0)
您需要的最佳匹配是使用Map接口和任何Concrete实现。
然后,键值对将Id
为Long
,Student
对象为value
。
Map<Long,Student> students= new HashMap<Long,Student>();
然后你可以用它作为
students.put(stu.getId(), student);
获得
Student st= students.get(stu.getId());
否则每次都会以迭代结束
答案 1 :(得分:0)
说我正在寻找一名学生年龄为32岁的学生
for(Student s : mylist) {
if(32 == s.getStudentNum) {
theStudent = s;
}
}
假设上面的数据结构,如果你想创建一个以studentNum为键,学生对象为值的地图,那就更合适了。
答案 2 :(得分:0)
您可以使用地图:
Map<Integer, Student> students = new HashMap<>();
把学生和身份证明:
students.put(studentNum, student);
通过id获取学生:
students.get(studentNum);
答案 3 :(得分:0)
如果Student
对象 覆盖 equals
考虑studentNumber
字段,那么您可以获取Student
通过示例找到
首先创建一个示例
Student example = new Student();
s.setStudentNum(32); //If you want to find student with id 32
然后你可以通过例子找到
Student toFind = arrayList.get(arrayList.indexOf(example));