2014-03-03 100 views
0

我必須編寫一個程序,在這裏我必須存儲客戶端號碼地址和ID 我爲所有的 創建了arrayList其中一個選項是程序要求輸入id號碼並提供信息沒有找到犯規存在顯示在arrayList中搜索數字

這是我已經寫了用於搜索的客戶端id

public static List<Integer> findClient (List<Integer> idnumbers, Integer searchterm) 
    { 
     List<Integer> result = new ArrayList<Integer>(); 
     for(Integer idnum : idnumbers) 
     { 
      if(idnum.contains(searchterm)) 
       result.add(idnum); 
     } 
     return result; 

    } 

我上。載說紅線「的方法包含(整數)是未定義的整數類型」

任何幫助我如何解決這個問題?

+0

將idnum.contains更改爲result.contains ...但您應該使用Set,因此您不必執行該檢查 – sjr

回答

2

包含上收集的方法,所以你可以使用它你的數組列表上,但不是整數

對於你的情況,你需要使用equals方法的整數。下面是修改的方法:

public static List<Integer> findClient (List<Integer> idnumbers, Integer searchterm) 
    { 
     List<Integer> result = new ArrayList<Integer>(); 
     for(Integer idnum : idnumbers) 
     { 
      if(idnum.equals(searchterm)) 
       result.add(idnum); 
     } 
      return result; 

     } 
0
List idnumbers 

應改爲

List<Integer> idnumbers 
0
if(idnumbers.contains(searchterm)) 

不能調用包含一個整數。這只是一個號碼...

0

雖然你有寫得答案,但你可以改變一些東西,以滿足您的要求。

你必須存儲客戶端號碼,地址和ID,但在arraylist中,你只是保存ID。

更好

你應該做的一類客戶端這樣的

class Client{ 
    int id; 
    String address; 
    String number; 

    //getters and setters 
} 

現在,在客戶端類型的ArrayList存儲這樣的客戶信息 -

ArrayList<Client> clients = new ArrayList<Client>(); 

,然後搜索你有一個特定的客戶端方式 -

1 - 通過直接檢查arraylist中每個客戶端的id這樣 -

for(Client client:clients){ 
    if(client.getId==idToSearch) 
    return client; 
} 

2-覆蓋等於您的客戶端類的方法,它將檢查客戶端的ID是否相同,然後它們是相同的。您可以使用IDE生成equals方法則直接使用含有mehtod這樣

//使id爲一個構造客戶端類

Client client = new client(idToSearch); 
if(clients.contains(client)){ 
    clients.get(clients.indexOf(client)); 
} 

我更喜歡第二個辦法希望它可以幫助你的代碼設計。

+0

您是否有機會接受輔導我有點了解您的意思,但我是難度如下 – user3373392

+0

好吧,你可以添加評論你嘗試什麼,什麼是困難將盡我所能幫助你 –

+0

我迷失在arrayList部分,因爲我做了4個arrayList,但你只做了一個。我想使用client.add(userinput)將所有信息添加到該數組中?或沒有? – user3373392