2015-08-25 76 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

相关问题