列出1对N对1关系的内部项目更好的成语?

时间:2013-12-06 11:57:38

标签: java guava

我有以下型号:

1 RepositoryDTO可以有许多ResourceDTO,并且在每个ResourceDTO中都是一个TeamDTO。

为了从RepositoryDTO获取TeamDTO,我正在做以下事情:

RepositoryDTO repoDTO = ...
List<TeamDTO> teamsLinkedToRepo = getTeamsLinkedTo(repoDTO);

private List<TeamDTO> getTeamsLinkedTo(final RepositoryDTO repository) {
    final List<TeamDTO> teamsLinkedToRepository = new ArrayList<TeamDTO>();
    for (final ResourceDTO resourceDTO : repository.getResources()) {
      teamsLinkedToRepository.add(resourceDTO.getTeam());
    }
    return teamsLinkedToRepository;
}

我只是想知道这样做有更好的习惯用法,也许是使用谷歌番石榴?

2 个答案:

答案 0 :(得分:8)

简单易懂。

我们在其中一个项目中过度使用了Google Guava。虽然代码更少,阅读速度更快,但在调试时却成了一场噩梦。所以我建议不要使用它,直到你从中获得巨大的优势(简单的for循环不会更好用它)。

使用纯Java,它是很好的代码。没有必要改进它。

答案 1 :(得分:1)

好的代码,如Chris所述,只有在可能的情况下才会进行一次小的更改,如果团队数量可能很大,您可以考虑使用新的ArrayList初始化新的ArrayList(Integer),以避免正在重建的底层数组。潜在地:

  new ArrayList<TeamDTO>(repository.getResources().size());