[英]Find position of specific element in arraylist
我有一個 class “學生”。它存儲學生姓名年齡標記等信息。我在 arraylist 中使用它。 這里我想知道具體學生的position。 有什么方法可以找到它或者我必須使用“for”。請幫助我?
Class student{
String name;
Int age;
Int mark1;
Int mark2;
Public class student(String name,Int age, Int mark1, Int mark2){
this.name=name;
...
...
}
}
In the main function {
Arraylist<student> ar=new Arraylist<student>();
//Added some students detail using add method //
然后我必須用他的名字找到學生的position。
Java List 接口有
int indexOf(對象o)
返回此列表中指定元素第一次出現的索引,如果此列表不包含該元素,則返回 -1。
但這需要你傳入一個Student object 來搜索。
因此:您必須以某種方式迭代列表,並“手動”進行比較。
當然,有很多不同的方法可以做到這一點。 例如,使用流,您可以編寫非常簡潔的代碼來做到這一點。 但是對於新手來說,只是一步一步的 go。 首先做一個正常的for循環,然后嘗試“for each”版本,然后查看流。
您可以使用前面提到的List<T>
接口中定義的indexOf
方法。 它的簽名看起來像:
int indexOf(Object o);
但是您需要在Student
class 中覆蓋Object
class 的equals
和hashCode
方法才能使用indexOf
。
例如在
class Student {
//... fields, methods and constructors, you already defined
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
mark1 == student.mark1 &&
mark2 == student.mark2 &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age, mark1, mark2);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.