2015-08-25 70 views
0

List<Branch>中有100個分支對象,並且已經設置了branchId(001到100)。我想用List<Branch>與iReport進行報告。什麼是最好的方式來填充名單<Object>?

但是現在我的數據都在另一個列表中List<Temp>和這個數據重複在List<Temp>

branchId firstName lastName type   number 
------------------------------------------------------------- 
005   Amy  Lee  home  1234567 
005   Amy  Lee  office  9999999 
005   Amy  Lee  cellphone 1111111 
005   John  Lin  home  1231231 
067   Louis  Tsai home  0809097 
.... 

我的問題如下:
我需要用List<Temp>轉換爲List<Branch>如果branchId不匹配List<Branch>,只需設置List<User>空。我能怎麼做?

public class Temp{ 

    private String branchId; 
    private String firstName; 
    private String lastName; 
    private String type; 
    private String number; 

    //getter and setter here 

} 

科豆

public class Branch { 

    private String branchId; 
    private List<User> user; 

    //getter and setter here 

} 

用戶的Bean

public class User { 

    private String firstName; 
    private String lastName; 
    private List<Phone> phones; 

    //getter and setter here 

} 

電話豆

public class Phone { 

    private String type; 
    private String number; 

    //getter and setter here 

} 

非常感謝。

-----------更新----------------

正如你所看到的,下面是我需要它看起來例如:
有Amy Lee和John Lin根據分支005排序,另一個分支Id07將以不同的頁面顯示。與同一分支Id,例如:005 Amy Lee,她下面有3種數字。現在,報告需要檢索List<Branch>。這就是爲什麼我需要循環List<Temp>和設置List<Branch>的原因。有什麼辦法可以做到嗎?

005 
----------------------------------- 
Amy  Lee  home  1234567 
        office  9999999 
        cellphone 1111111 
John  Lin  home  1231231 

下一頁

067 
----------------------------------- 
Louis  Tsai home  0809097 
+0

我不知道你爲什麼這樣做,這是爲了一切嗎?如果這是爲什麼你不使用分支,並使用排序列表,如集合或包。在大多數情況下,擁有3個獨立的List是無效的。而不是有一個分支項目與jsut一個字符串和列表,你可以有一個HashMap <字符串,列表或HashMap <字符串,臨時[]> –

+0

@YaWang感謝您的回覆,我只是更新我的問題。原因報告需要檢索列表。 – Louis

回答

0

我會通過地圖,如果我是你,和使用將是一種像這樣替換這些列表。

List<temp> t; 
for (temp t : tempList) { 
    if ((Branch b = branchMap.get(t.getBranchID)) != null) { 
     if ((user u = b.getUsers.get((t.getFirstName() + t.getLastName()) != null) { 
      user.getPhonse.add(new Phone(t.getPhoneType(), t.getPhoneNumber())) 
     } 
    } else { 
     List<Phone> phonse = new ArrayList<Phone>(); 
     phonse.add(new Phone(t.getPhoneType(), t.getPhoneNumber())); 

     Map<String,String> users = new hashMap<String,String>(); 
     users.put(t.getFirstName() + t.getLastName(), new user(t.getFirstName(), t.getLastName(), phones); 

     branchMap.put(t.getBranchID, new Branch(t.getBranchID(), new hashMap<String,String>().put(t.getFirstName() + t.getLastName(), new user(t.getFrstName(), t.getLastName(), new List<Phone>)))))) 
    } 
} 
+0

這段代碼是不完整的我知道,我只是想給你一點點如何做到這一點,儘管這段代碼可能會與一些額外的努力形式工作,不要猶豫,問你是否不明白一般這個解決方案的理念 – QuakeCore

相關問題