Java - 如何循环遍历 map 寻找另一个类的实例

标签 java loops methods maps

相关类如下:

   public Customer(String aName, String anAddress, int anArea)
   {
      this.fullName = aName;
      this.address = anAddress;
      this.area = anArea;
   }

我像这样创建了 map (客户变量单独初始化,创建 HashMap ):

   public void addCustomer(String regNo, String name, String address, int area)
   {
      customers.put(regNo, new Customer(name, address, area));
   }

我希望程序做的是迭代 map ,检查具有特定区域号码的客户。

方法头如下所示:

   public Customer findCustomersInArea(int area)
   {

   }

我创建了一个单独的方法,使用 foreach 循环遍历 map ,该循环打印与 Customer 对象关联的所有详细信息,我尝试模拟此方法,但无济于事。它看起来像这样:

    public void printCustomers()
   {
      Set<String> customerKeys = customers.keySet();
      for (String eachCustomer: customerKeys)
      {
         System.out.println (customers.get(eachCustomer));
      }
   }

我希望我已经说清楚了,如果我需要提供更多详细信息,请告诉我。

最佳答案

这个答案基于此 SOURCE .

<小时/>

只需迭代并寻找您需要的内容即可。 在此示例中,我创建一个 List 以返回具有此匹配区域的所有客户:

public List<Customer> findCustomersInArea(int area)
{
    // create a list to store all Customer with given area
    List<Customer> inArea = new ArrayList<Customer>();
    // iterate all entries in customers map
    for (Map.Entry<String, Customer> entry : customers.entrySet())
    {
        // get the customer
        Customer c = entry.getValue();
        if (c.getArea() == area) {
            // do what you need, for example add to a list
            inArea.add(c);
        }
    }
    // return the list with all customers
    return inArea;
}

免责声明:代码是通过我的手机即时编写的,因此可能包含一些拼写错误。

关于Java - 如何循环遍历 map 寻找另一个类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42817341/

相关文章:

c - 当输入是 int 和 string 的混合时,scanf 读取两次

Java类设计问题

python类方法和继承

java - 如何在 Complex 类中实现 square()、modulus Squared() 和 add() 方法?

java - Spring Boot、JPA、@Query、Sybase 存储过程

java - 我无法在 Spring-MVC 中访问 Robots.txt

java - vbscript 上的 aes/rijndael 自定义 key

java - 如何在 JTable 上创建多颜色行

java - Struts2 使用动态变量通过列表进行嵌套迭代

python - 循环时修改字符串