gpt4 book ai didi

java - 使用 Java 8 更好地替换嵌套 for 循环中的代码

转载 作者:行者123 更新时间:2023-12-01 16:53:10 26 4
gpt4 key购买 nike

我想避免这种嵌套的 for 循环,并用 java8 中任何更好的技术替换它。我读到了有关 java8 中的流的信息,但是在这个特定的代码中,我如何使用 java8 流或其他任何东西来使代码更好并主要避免嵌套循环?

List<Country> countryList=new ArrayList<Country>();
List<CountryDTO> countryDtoList=new ArrayList<CountryDTO>();
List<CityDTO> cityDtoList=new ArrayList<CityDTO>();
countryList.forEach(country->{
CountryDTO countryDto=new CountryDTO();
countryDto.setCountryId(country.getCountryId());
countryDto.setCountryName(country.getCountryName());
countryDto.setCapital(country.getCapital());
List<City> cityList=new ArrayList<City>();
cityList=cityRepository.getCitiesForCountry(country.getCountryId());
cityList.forEach(city->{
CityDTO cityDto=new CityDTO();
cityDto.setCityId(city.getCityId());
cityDto.setCityName(city.getCityName());
cityDtoList.add(cityDto);
});
countryDto.setCities(cityDtoList);
});

最佳答案

我会向 CountryDTO 添加一个转换构造函数或工厂

List<Country> countryList = ... some data
List<CountryDTO> dtoList = countryList.stream()
.map(CountryDTO::new)
.collect(Collectors.toList());

您需要向 CountryDTO 添加一个构造函数

public CountryDTO(Country country) {

或者你可以使用工厂方法

public static CountryDTO from(Country country) {

关于java - 使用 Java 8 更好地替换嵌套 for 循环中的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com