2017-01-30 175 views
1

我有一個數組列表中的數組被稱爲realtorList。從我的主類中,我將對象與房地產經紀人數據存儲到房地產經紀人列表。 我的數據存儲到一個文本文件,並在第一行讀取。 這是存儲第一行數據後,realtorList中的第一個元素。搜索數組對象列表

[房屋租賃{licenseNumber = AA1111111,名字=安娜,姓氏=阿斯特麗德,phoneNumber的= 111-111-1111, 佣金= 0.011}]

當我從輸入讀出的數據的下一行文件我需要看看在realtorList中加粗的licenseNumber是否已經存在。我很難找出如何去做這件事。

例如,如果接下來的數據經紀人許可證編號AA1111111我怎麼檢查它確實在這個例子中存在realtorList的AA1111111。

+0

爲什麼不通過realtorList循環並檢查每個元素的讀取許可證號?這很慢,但幾乎任何你嘗試的東西,除非你存儲的信息像MySQL數據庫的東西。 – mstorkson

+1

'Map'在這裏可能有用。 – SomeJavaGuy

+0

這就是我遇到的問題,當我調用第一個元素realtorList.get(0)時,如何拉出許可證號。我如何閱讀許可證號碼? – Kevin

回答

1

一個非常簡單的方式做,這將有運行旁邊一個String的ArrayList(例如,一個名爲許可證),並使用如果與的indexOf語句返回如果該許可值已經在列表中。由於許可證ArrayList只有一個值,因此可以使用indexOf輕鬆搜索。

一個例子是

private boolean checkLicense (String licenseNumber) { 
     int i = licenses.indexOf(licenseNumber); 
     if(i == -1) { 
      return false; 
     } else { 
      return true; 
     } 
} 

相似的代碼在我的項目的一個工作在哪裏看到馬達的機器人檢查的動態列表,如果有已經與港口上市馬達添加一個新的人之前。

的另一種方法可以使用一個for循環如

private boolean checkLicense (String licenseNumber) { 
    for(int i = 0; i < (realtorList.size() - 1); i++) { 
     if (licenseNumber.equals(realtorList[i].getLicenseNumber())) { 
     return true; 
     } 
    } 
    return false; 
} 

直到它發現它這將執行的每個對象中的每個的線性搜索和線性搜索(這將需要在像的方法一個用於上述示例以這種方式工作)

+0

您確定使用「==」運算符比較字符串嗎? –

+0

啊哎呀。我試圖解決這個問題,因爲我修改了原來的代碼來比較整數。我會編輯它。 – Bakna

+0

如果我使用if(license.equals(realtorList.get(count).getlicenseNumber)).getlicenseNumber以紅色突出顯示並懸停在它上面說java.lang.Object.getlocenseNumber。 – Kevin