Ho due liste:
List<Integer, ZooEntity> zoos;
List<Integer, List<ZooEntity>> groupOfZoos;
Queste operazioni restituiranno raccolte di valori:
Collection<ZooEntity> cz = zoos.values();
Collection<List<ZooEntity>> czList = groupOfZoos.values();
Quello che voglio ottenere è ottenere l'elenco di tutti gli ID dello zoo.
List<Integer> zooIds = cz ids + czList ids;
Naturalmente posso creare due metodi per fare ciò che voglio:
public List<Integer> getIdsFromFlatList(Collection<ZooEntity> list) {
List<Integer> ids = new ArrayList<Integer>();
for (ZooEntity z : list) {
ids.add(z.getId());
}
return ids;
}
public List<Integer> getIdsFromNestedList(Collection<List<ZooEntity>> list) {
List<Integer> ids = new ArrayList<Integer>();
for (List<ZooEntity> zList : list) {
for (ZooEntity z : zList) {
ids.add(z.getId());
}
}
return ids;
}
Come puoi vedere questi due metodi sono molto simili e questa è la mia domanda:
È positivo creare un metodo (ad esempio utilizzando i generici) che otterrà gli ID da questi due elenchi ( zoos
e groupOfZoos
). Se sì, come dovrebbe essere? Se no qual è la soluzione migliore?
A proposito. Questo è solo l'esempio. Ho un problema molto simile al lavoro e voglio farlo in modo preety (non posso cambiare l'unità, posso cambiare solo i metodi getIds...()
).