2017-12-09 14 views
-2

Stream<Winner>이라는 주어진 정적 메서드를 구현하려면 new Stream<Winner>이 알파벳 순서로 35보다 작은 수위를 포함하는 것을 반환합니다.스트림을 IntStream으로 변환하는 방법

내 파일 안에 : 색인, 연도, 나이, 이름, 영화가 있습니다.

내 문제는 내가 StreamIntStream으로 변환하여 나이를 35 세와 비교할 수 있는지 모르겠다. 나도 약간 혼란 스러웠다. 비교기를 사용해야합니까?

public static Stream<Winner> youngWinners(Stream<Winner> young) { 
    // Stream<Winner> youngWin = young; 
    String[] toString = young.toArray(s -> new String[s]); 
    Arrays.stream(toString).flatMap((<any> f) -> { 
     try { 
      return Files.lines(Paths.get(f)) 
        .filter(age -> int (age) <= 35) 
        .mapToInt(a -> a.getWinnerage()) 
        .map(WinneropsDB::new);              
     } catch (Exception e) {     
      System.out.println("error"); 
      return null; 
     } 
    }); 
    return null; 
} 
+0

귀하의 우승자 클래스는 Comparable를 구현해야합니다, 당신의 구현 compareTo 메소드는 이름을 비교해야, 당신은 당신의 수상자 배열/수집, 호출의 스트림을 얻기 위해 정기적 .stream() 메소드를 사용할 수 있습니다. filter()를 사용하여 35보다 오래된 사람들을 얻은 다음 sort()를 호출하여 compareTo를 암시 적으로 구현하고 결과를 출력합니다. 또한 코드가 추한 것입니다, 미안 해요. 그냥 말하고 싶었습니다 : D,하지만 당신은 더 좋아질 것입니다. 포기하지 마세요. – prsvr

+0

답변을 주셔서 감사합니다. –

+0

자바의 초보자이고 자바에 대한 경험이 없기 때문에 : D –

답변

0

IntStream은 전혀 필요하지 않습니다.

간단히 수행

return young.filter(w -> w.getAge() < 35) 
      .sorted(Comparator.comparing(Winner::getName)); 
+0

어쩌면 내가 verry 잘 이해하지 stream.anyway의 의미 :-) Logged –