我想知道,有没有更有效的方法来做到这一点

时间:2019-08-05 16:35:50

标签: java jpa java-stream

有一个方法saveCountryIslands,它带有String数组参数。有一个实体是国家和岛屿。

我一直试图使用来保存提供的岛屿名称列表 jpa .save()

现有方法主体已经在起作用(您可以在下面的代码中看到)。

是否有更有效的方法?

private void saveCountryIslands(String[] islandNames){

    List<Islands> listOfIsland = new ArrayList<>();
    Country country=new Country();

    Stream.of(islandNames).distinct().forEach(islandNamesFromArray -> {
      Islands islands = new Islands();
      islands.setIslandName(islandNamesFromArray);
      listOfIsland.add(islands);
    });

    country.setCountryIslands(listOfIsland);
    countryRepository.save(country);

}

1 个答案:

答案 0 :(得分:1)

可以带来可读性的一个小变化是使用以下构造函数:

    public Islands(String name) {
        this.name = name;
    }

,然后将现有代码重构为:

    List<Islands> listOfIsland = Stream.of(islandNames)
            .distinct()
            .map(Islands::new)
            .collect(Collectors.toList()); // collect 'toSet' depending on compatibility