填充List <object>的最佳方法是什么?

时间:2015-08-25 14:26:06

标签: java jasper-reports javabeans

List<Branch>中有100个分支对象,并已设置branchId(001到100)。我想使用List<Branch>与iReport进行报告。

但现在我的数据全部位于其他列表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>,如果{1}}中的branchId不匹配,则只需设置List<Branch> null。我该怎么办?

List<User>

Branch Bean

public class Temp{

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

    //getter and setter here

}

用户Bean

public class Branch {

    private String branchId;
    private List<User> user;

    //getter and setter here

}

电话豆

public class User {

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

    //getter and setter here

}

非常感谢。

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

如您所见,以下是我需要的样子:
有一个Amy Lee和John Lin在branchId 005下排序,另一个branchId 067将显示在不同的页面中。与同一branchId,例如005 Amy Lee,她下面有3种数字。现在,报告需要检索public class Phone { private String type; private String number; //getter and setter here } 。这就是我需要循环List<Branch>并设置List<Temp>的原因。我有什么方法可以做到吗?

List<Branch>

下一页

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

1 个答案:

答案 0 :(得分:0)

如果我是你,我会用地图替换那些列表,并且用法会有点像这样。

(let [cp (ColorPicker.)]
  (.setOnAction cp (eventhandler [e] (println "event: "(.getValue cp))))
  (add-listener! cp :value
                 (change-listener [_ obs old new]
                                  (println "change-listener:" old new)))
  (.show (make-node-window cp)))