Object ArrayList属性

时间:2014-01-29 10:11:33

标签: java variables object arraylist attributes

例如,我有一个对象的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上编辑某个对象?

4 个答案:

答案 0 :(得分:0)

您需要的最佳匹配是使用Map接口和任何Concrete实现。

然后,键值对将IdLongStudent对象为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));