在arrayList中搜索数字

时间:2014-03-03 03:41:55

标签: java 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;

    }

我在.contains上得到红线说“方法包含(整数)未定义类型Integer”

任何帮助我该如何解决?

4 个答案:

答案 0 :(得分:2)

contains是Collection上的一个方法,因此您可以在数组列表中使用它,但不能在Integer上使用

对于您的情况,您需要在Integer上使用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;

      }

答案 1 :(得分:0)

List idnumbers

应改为

List<Integer> idnumbers

答案 2 :(得分:0)

if(idnumbers.contains(searchterm))

无法在Integer上调用contains。这只是一个数字......

答案 3 :(得分:0)

虽然你有写回答,但有些事情你可以改变以满足你的要求。

您必须存储客户编号,地址和ID,但在arraylist中您只是保存ID。

你应该为这样的客户做一个更好的课程

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

  //getters and setters
}

现在将客户信息存储在Client类型的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));
}

我希望第二种方式希望它有助于您的代码设计。