簡體   English   中英

在 arraylist 中查找特定元素的 position

[英]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 的equalshashCode方法才能使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM