2017-05-06 85 views
0
List<Employee> employee=new ArrayList<Employee>(); 
static final String[] mylist=new String[3]; 


employee.add(new Employee("Sofia","London","092237674643","Manager",30,800000)); 
employee.add(new Employee("Jones","Qwait","092013764551","CEO",33,20000000)); 
employee.add(new Employee("Kai","Korea","5243524541741","Staff",43,700000)); 

n=new String[]{"Wazma","Laiba","Kainat","Sana","Sara","Saba","Ayesha","Ali","Armeena","Ahmed"}; 
for(int i=0;i<employee.size();i++){ 
      mylist[i]=String.valueOf(employee.get(i)); 


     } 
Iterator<Employee> itr=employee.iterator(); 
Employee emp;  
for(int j=0;j<mylist.length;j++){ 

      emp = itr.next(); 

      if(emp.getName().matches(mylist[j])) { 
      System.out.println(mylist[j]); 

        } 

我想要做的是检查mylist中的名称是否与emp中的名称匹配,然后打印该员工的详细信息。但我的代码,如果条件回到for循环,而不是打印细节。通过名称获取员工的详细信息

回答

0

为此,您必须将值name存储在String []数组(myList)中,而不是将整个Employee对象存储为String。因此,请for循环以下更改你在哪里初始化数组:

​​

现在getName()应该是你的Employee类的getter方法。

0

在你的问题中有几件事不太清楚 - String[] n(它没有正确声明)的目的是什么?你为什么要将员工姓名放入String[]然后再次搜索同名?

如果你有EmployeeList一个对象,可以说employees,你想找到这个名单谁从此低于Java名称的任何单独的匹配列表名员工 - 8码会有所帮助,

List<Employee> result = employees.stream().filter(emp -> tobeFoundNames.contains(emp.getName())).collect(Collectors.toList()); 

results.forEach(result -> System.out.println(result.getName())); 

这里,tobeFoundNames是另一个List<String>,它包含您正在搜索的名称列表。

像 - List<String> tobeFoundNames = Arrays.asList("Wajid","Sofia");

结果是List<Employee>因为可能有多个匹配。

它假设Employee对象有一个方法 - getName()

相关问题