簡體   English   中英

搜索對象ArrayList

[英]Searching through an object ArrayList

public class favoriteshow {

String name = null; 
int age = 0; 
String show = null; 

public Lab2(String name, int age, String show){
    this.name = name; 
    this.age = age; 
    this.show = show; 
}

public String toString(){
    return "Name " + name + " age: " + age + " Favorite show: " + show; 
}

}

我的主班:

public class NewClass {
public static void main(String args[]){
    int x = 0;

    ArrayList<favoriteshow> arraylist = new ArrayList<favoriteshow>();

 while( x < 5){ 
    String name;
    int age = 0;
    String show;

    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter a name: ");
    name = scanner.nextLine();

    System.out.print("Enter an age: ");
    age = scanner.nextInt();

    System.out.print("Enter a show: ");
    show = scanner.nextLine();

    Lab2 nub1 = new Lab2 (name, age , show); 




    arraylist.add(nub1);
      x++;

    }

   System.out.println(arraylist);


 }
}

(我知道我的while循環僅重復5次,因為我只是對其進行測試。)

因此,我有一個數組列表,用戶可以鍵入一個人的姓名,年齡和喜歡的節目。 我想包含一個搜索功能,因此,如果我要用戶輸入名稱,它將顯示所有具有相同名稱的人的信息,而不僅僅是第一人。 我也想告訴我這個人在名單上的號碼是多少。 例如,如果我要有5個人,其中2個人有相同的名字,分別是2和4位,那么它將告訴我他們是第二位和第四位。

就像在普通數組中一樣,只需遍歷ArrayList索引,然后與所需字段進行比較,例如:

public void searchAndShow(String name) {
    for (int i = 0; i < arraylist.size(); i++) {
        favoriteshow fs = arraylist.get(i);
        if (fs.getName().equals(name)) {
            System.out.println(i + " - " + fs);
    }   
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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