2016-09-20 5 views
0

A1 클래스는이 2 개의 속성이 있습니다자바 8 : 목록 inisde 매핑 목록

private String hour; 
private List<A2> list; 

A2 클래스 :

private String code; 
private List<A3> list; 

내가하고 싶은 것은 자바 8 귀엽 방법을 찾을 수 이것을 작성하려면

Set<MyObject> set = new HashSet<MyObject>(); 
for (A1 pes : a1.getList()) { 
    for (A2 pe : a2.getList()) { 
     MyObject bppc = new MyObject (a2.getCode(), a1.getHour()); 
     set.add(bppc); 
    } 
} 

실마리가 있습니까?
감사합니다.

+0

Java 8 기능이 없으면 코드를 읽을 수 있습니다. – manouti

+1

평등 한 객체를 많이 원하십니까? for-loops 내에서 정의한 변수는 사용하지 마십시오. 클래스 필드는 코드 스 니펫과 for 루프를 실제로 일치시키지 않습니다. – marstran

답변

1

나는 당신의 버전을 이미 꽤 읽을 수 있기 때문에 나는 스트림을 사용하여 그것을 다시 쓰지 않을 것이라고 생각한다. 그러나 여기에 스트림을 사용하는 해결책은 다음과 같습니다.

a1.getList() 
    .stream() 
    .flatMap(pes -> 
     a2.getList() 
      .stream() 
      .map(pe -> new MyObject(a2.getCode(), a1.getHour()))) 
    .collect(Collectors.toSet());