2017-05-06 102 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()

相關問題