2015-08-25 3 views
0

Существует 100 объектов ветвления в List<Branch> и уже установлены 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 

} 

Отделение Bean

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 

} 

Телефон Bean

public class Phone { 

    private String type; 
    private String number; 

    //getter and setter here 

} 

спасибо много.

----------- обновление ----------------

Как вы можете увидеть ниже, что мне нужно это смотреть например:
Есть Эми Ли и Джон Лин отсортированы под branchId 005, а другой branchId 067 будет отображаться на разных страницах. С той же самой веткой, например: 005 Эми Ли, под ней есть 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

Я не уверен, почему вы это делаете, это тоже порядок? Если вы не используете ветку и используете отсортированные списки, например, набор или сумку. В большинстве случаев наличие трех отдельных списков вообще неэффективно. И вместо того, чтобы иметь элемент ветвления с 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

Смежные вопросы