相关类如下:
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/