2016-04-27 34 views
0

我是新来的java,我正在尝试创建一个客户数据库程序。有一些CustomersfirstName不同lastName(反之亦然)。如果用户输入CustomerlastName进行搜索并且lastName与多个Customer相匹配,我如何显示与用户输入相匹配的Customer s列表,然后提示您选择要使用哪个Customer从数组列表中选择与用户输入相匹配的元素

这里是我的代码至今:

private Customer searchCustomer(String search) { 
Customer customer = null; 
for (Customer cust : mockCustomerDatabase) { 
    if (cust.getLastName().toLowerCase().indexOf(search.toLowerCase()) > -1) 
    return cust; 
    } 
} 
return customer; 
} 

客户数据库:

private void createMockData() { 
Customer cust = new Customer("Brain", "Holtz", "[email protected]"); 
mockCustomerDatabase.add(cust); 
cust = new Customer("Bruce", "Bagley", "[email protected]"); 
mockCustomerDatabase.add(cust); 
cust = new Customer("Courtney", "Lee", "[email protected]"); 
mockCustomerDatabase.add(cust); 
cust = new Customer("Jacob", "Graf", "[email protected]"); 
mockCustomerDatabase.add(cust); 
cust = new Customer("Jacob", "Brown", "[email protected]"); 
mockCustomerDatabase.add(cust); 
cust = new Customer("Kevin", "Brown", "[email protected]"); 
mockCustomerDatabase.add(cust); 

Customer类:

public class Customer { 
public String firstName; 
public String lastName; 
public String email; 
public Customer(String firstName, String lastName, String email) { 
this.firstName = firstName; 
this.lastName = lastName; 
this.email = email; 
} 

public Customer() { 
} 

//Getter's and Setter's 
@Override 
public String toString() { 
return "Customer [firstName=" + firstName + ", lastName=" + lastName  + ",email=" + email + "]"; 
} 

} 
+0

您需要先让searchCustomer方法返回Customer对象列表。您已经循环了主要客户列表,以便完成大部分逻辑。 – Austin

+0

@奥斯汀:我想通了。谢谢 – RedHawk87

回答

1

使用拉姆达表达式:

public Customer findPersonByName(final String name) { 
    return mockCustomerDatabase.stream().filter(p -> p.getName().equals(name)).findAny(); 
} 
相关问题