亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將人員姓名輸入控制臺并獲取人員數組索引

如何將人員姓名輸入控制臺并獲取人員數組索引

夢里花落0921 2023-03-31 16:30:17
我試圖通過在控制臺中鍵入人員姓名來獲取人員在數組中的位置。public static void main(String[] args) {    Students[] student = new Students[50];    student[0] = new Students("Helen", "Jones", 10);    student[1] = new Students("Fred ", "Smith", 15);    student[2] = new Students("George", "Evans", 25);    student[3] = new Students("Malcolm", "Evans", 30);    Scanner userInput = new Scanner(System.in);    System.out.println("Enter Forename");    String name = userInput.nextLine();    Arrays.asList(student).indexOf(name);我希望能夠在控制臺中輸入一個名稱,然后它將顯示人員在數組中的位置。請提供任何形式的幫助。謝謝
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

如果您不限于使用數組,則可以使用映射而不是數組來存儲對象。以姓名為鍵,以學生對象為鍵。與將對象存儲在數組中并循環查找匹配的名稱相比,這將是一種更快的查找。


HashMap<String, Students> map = new HashMap<>();

map.put("Helen", new Students("Helen", "Jones", 10));

map.put("Fred", new Students("Fred", "Smith", 15));

...


Scanner userInput = new Scanner(System.in);

System.out.println("Enter Forename");

String name = userInput.nextLine();


Students studentToFind;

if(map.contains(name))

{

   studentToFind = map.get(name);

   //do stuff with the student

}

else

{

   System.out.println("No student with name " + name + " was found");

}


查看完整回答
反對 回復 2023-03-31
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

我想我可能知道如何解決你的問題


這是你的代碼


...

System.out.println("Enter Forename");

String name = userInput.nextLine();

println(Arrays.asList(student).indexOf(name));

你應該把它改成


...

HashMap<Name, Student> studentz = new HashMap<>();

System.out.println("Enter Firstname");

String name = userInput.nextLine();

Arrays.asList(student).indexOf(studentz.get(codeIsIn));

問題是您試圖查找字符串 NAME 的索引而不是對象字符串的索引在


如果你想得到它最后所在的對象,只需使用


...

println(studentz.get(codeIsIn))

順便說一下,將 Name 替換為“Helen”的任何屬性名稱,您沒有將它打印到控制臺


查看完整回答
反對 回復 2023-03-31
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您要么需要 forEach 您的列表并根據對象名稱檢查名稱,要么過濾列表并獲取匹配的對象。


int index= -1

for(int i =0;i<students.length();i++){

    if(students[i].getFirstName().compareToIgnoreCase(name)){

         index = i;

    }

if(index<>-1){

    //name was found do something

 }


查看完整回答
反對 回復 2023-03-31
  • 3 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號