Java 8을 사용하여 중첩 된 for 루프에서 더 나은 코드 대체

아카시 라빈 드란

이 중첩 된 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);
});
Assylias

일반적인 리팩토링 기술을 적용하고 적절한 방법으로 논리를 추출해야합니다. 그리고 일반적으로 forEach메서드 대신 스트림과 일련의 맵 호출을 사용하는 것이 좋습니다 .

List<Country> countryList = ...;
List<CountryDTO> countryDtoList = countryList.stream()
                                             .map(MyClass::countryToDTO)
                                             .collect(toList());

private static CountryDTO countryToDTO(Country country) {
  CountryDTO countryDto=new CountryDTO();
  countryDto.setCountryId(country.getCountryId());
  countryDto.setCountryName(country.getCountryName());
  countryDto.setCapital(country.getCapital());
  List<CityDTO> cityDtoList = cityRepository.getCitiesForCountry(country.getCountryId())
                                            .stream()
                                            .map(MyClass:cityToDTO)
                                            .collect(toList());
  countryDto.setCities(cityDtoList);
  return countryDTO;
}

private static CityDTO cityToDTO(City city) {
  CityDTO cityDto=new CityDTO();
  cityDto.setCityId(city.getCityId());
  cityDto.setCityName(city.getCityName());
  return cityDTO;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

최적화 된 C # 코드. 중첩 루프없이 더 나은 기술을 사용하고 싶습니다.

분류에서Dev

대규모 데이터 세트에 대해 더 나은 성능을 제공하는 것은 무엇입니까? 중첩 된 사전 또는 객체 사전?

분류에서Dev

java8을 사용하여 더 나은 코드를 작성하는 방법

분류에서Dev

노드 가져 오기 헤더에서 중첩 된 객체 / 배열 표기법을 사용하는 방법은 무엇입니까?

분류에서Dev

중첩 된 사전 목록에서 중첩 된 열로 팬더 데이터 프레임을 만드는 방법

분류에서Dev

중첩 된 for 루프를 사용하여 PHP에서 다음 패턴을 만드는 방법

분류에서Dev

루트 노드 항목을 사용하여 중첩 된 JSON을 순서대로 트래버스하는 방법

분류에서Dev

기본값을 사용하여 객체에 중첩 된 사전

분류에서Dev

중첩 된 일대 다 관계에 대한 Java 8 Collector 체인

분류에서Dev

중첩 루프를 사용하여 파이썬에서이 모양을 어떻게 만드나요?

분류에서Dev

플랫은 더 나은 중첩보다 : 얼마나 깊이 중첩 된 사전을 처리하는 방법?

분류에서Dev

중첩 루프에 대한 더 나은 대안

분류에서Dev

JAXB를 사용하여 Java 객체에서 XML을 생성 할 때 JAXB에 중첩 된 루트 요소를 생성하는 방법

분류에서Dev

파이썬 코드에서 문자와 중첩 while 루프를 사용하여 역 삼각형을 어떻게 그리나요?

분류에서Dev

Java 8 FlatMap-중첩 된 양식으로 항목을 추가하고 FlatMap을 사용하여 객체 검색

분류에서Dev

중첩 된 데이터 구조에서 발생을 대체하는 노드 js

분류에서Dev

빌드 된 값을 사용하여 중첩 된 개체를 만드는 방법

분류에서Dev

for 루프 대신 map () 사용 및 더 짧은 (더 나은) 코드 작성

분류에서Dev

xamarin 영역에서 중첩 된 개체를 검색하는 더 나은 해결 방법

분류에서Dev

setTimeout을 사용하여 중첩 된 맵 순차 렌더링에 반응

분류에서Dev

jquery를 사용하여 중첩 된 JSON 개체에서 값을 가져 오는 방법은 무엇입니까?

분류에서Dev

중첩 된 for 루프를 사용하여 코드 조각의 성능 향상

분류에서Dev

확인란을 사용하여 중첩 된 양식의 중첩 된 속성에 대해 미리 정의 된 필드

분류에서Dev

Grpc 생성 자바 코드에서 중첩 된 속성 값을 설정하는 더 쉬운 방법

분류에서Dev

오프셋을 사용하여 중첩 된 구조체에 액세스

분류에서Dev

JSON은 circe를 사용하여 Scala에서 중첩 된 필드를 Map [String, String]으로 디코딩합니다.

분류에서Dev

Elastic을 사용하여 중첩 된 객체에 대해 하위 집계를 수행하는 방법은 무엇입니까?

분류에서Dev

Linq를 사용하여 하나의 목록에 중첩 된 개체 병합

분류에서Dev

대체 var에 중첩 된 var 사용

Related 관련 기사

  1. 1

    최적화 된 C # 코드. 중첩 루프없이 더 나은 기술을 사용하고 싶습니다.

  2. 2

    대규모 데이터 세트에 대해 더 나은 성능을 제공하는 것은 무엇입니까? 중첩 된 사전 또는 객체 사전?

  3. 3

    java8을 사용하여 더 나은 코드를 작성하는 방법

  4. 4

    노드 가져 오기 헤더에서 중첩 된 객체 / 배열 표기법을 사용하는 방법은 무엇입니까?

  5. 5

    중첩 된 사전 목록에서 중첩 된 열로 팬더 데이터 프레임을 만드는 방법

  6. 6

    중첩 된 for 루프를 사용하여 PHP에서 다음 패턴을 만드는 방법

  7. 7

    루트 노드 항목을 사용하여 중첩 된 JSON을 순서대로 트래버스하는 방법

  8. 8

    기본값을 사용하여 객체에 중첩 된 사전

  9. 9

    중첩 된 일대 다 관계에 대한 Java 8 Collector 체인

  10. 10

    중첩 루프를 사용하여 파이썬에서이 모양을 어떻게 만드나요?

  11. 11

    플랫은 더 나은 중첩보다 : 얼마나 깊이 중첩 된 사전을 처리하는 방법?

  12. 12

    중첩 루프에 대한 더 나은 대안

  13. 13

    JAXB를 사용하여 Java 객체에서 XML을 생성 할 때 JAXB에 중첩 된 루트 요소를 생성하는 방법

  14. 14

    파이썬 코드에서 문자와 중첩 while 루프를 사용하여 역 삼각형을 어떻게 그리나요?

  15. 15

    Java 8 FlatMap-중첩 된 양식으로 항목을 추가하고 FlatMap을 사용하여 객체 검색

  16. 16

    중첩 된 데이터 구조에서 발생을 대체하는 노드 js

  17. 17

    빌드 된 값을 사용하여 중첩 된 개체를 만드는 방법

  18. 18

    for 루프 대신 map () 사용 및 더 짧은 (더 나은) 코드 작성

  19. 19

    xamarin 영역에서 중첩 된 개체를 검색하는 더 나은 해결 방법

  20. 20

    setTimeout을 사용하여 중첩 된 맵 순차 렌더링에 반응

  21. 21

    jquery를 사용하여 중첩 된 JSON 개체에서 값을 가져 오는 방법은 무엇입니까?

  22. 22

    중첩 된 for 루프를 사용하여 코드 조각의 성능 향상

  23. 23

    확인란을 사용하여 중첩 된 양식의 중첩 된 속성에 대해 미리 정의 된 필드

  24. 24

    Grpc 생성 자바 코드에서 중첩 된 속성 값을 설정하는 더 쉬운 방법

  25. 25

    오프셋을 사용하여 중첩 된 구조체에 액세스

  26. 26

    JSON은 circe를 사용하여 Scala에서 중첩 된 필드를 Map [String, String]으로 디코딩합니다.

  27. 27

    Elastic을 사용하여 중첩 된 객체에 대해 하위 집계를 수행하는 방법은 무엇입니까?

  28. 28

    Linq를 사용하여 하나의 목록에 중첩 된 개체 병합

  29. 29

    대체 var에 중첩 된 var 사용

뜨겁다태그

보관