2014-03-03 82 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