«java-stream» 태그된 질문

Stream API 사용과 관련된 질문에이 태그를 사용하십시오. Java 8에 도입되었으며 콜렉션의 필터 맵 감소 파이프 라인과 같은 값 스트림에서 기능 스타일 조작을 지원합니다.

9
Stream <T>가 Iterable <T>를 구현하지 않는 이유는 무엇입니까?
Java 8에는 Stream &lt;T&gt; 클래스가 있는데 , 여기에는 흥미롭게 메소드가 있습니다 Iterator&lt;T&gt; iterator() 따라서 Iterable &lt;T&gt; 인터페이스를 구현할 것으로 예상 할 수 있는데,이 메소드는 정확히이 메소드를 필요로하지만 그렇지 않습니다. foreach 루프를 사용하여 Stream을 반복하려면 다음과 같은 작업을 수행해야합니다 public static Iterable&lt;T&gt; getIterable(Stream&lt;T&gt; s) { return new Iterable&lt;T&gt; { @Override public …


7
스트림을 사용하여 맵을 생성 할 때 중복 무시
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); java.lang.IllegalStateException: Duplicate key중복 요소가 발견되면 얻습니다 . 지도에 값을 추가 할 때 이러한 예외를 무시할 수 있습니까? 중복이 있으면 중복 키를 무시하여 계속 진행해야합니다.
257 java  java-8  java-stream 

3
Iterable <T>가 stream () 및 parallelStream () 메소드를 제공하지 않는 이유는 무엇입니까?
Iterable인터페이스가 왜 stream()and parallelStream()메소드를 제공하지 않는지 궁금 합니다. 다음 클래스를 고려하십시오. public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } 트레이딩 카드 게임을하는 동안 카드를 손 에 넣을 수 있으므로 핸드 를 …

3
Java 8 람다, Function.identity () 또는 t-> t
На этот вопрос есть ответы на 스택 오버플로 на русском : Лямбды в 자바 (8), что лучше использовать - Function.identity () или T-&gt; t? Function.identity()방법 의 사용법에 관한 질문이 있습니다 . 다음 코드를 상상해보십시오. Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) // &lt;- is the same …

12
Stream :: flatMap과 함께 Java 8의 Optional 사용하기
새로운 Java 8 스트림 프레임 워크와 친구는 매우 간결한 Java 코드를 만들지 만 간결하게하기가 까다로워 보이는 단순한 상황을 발견했습니다. a List&lt;Thing&gt; things와 method를 고려하십시오 Optional&lt;Other&gt; resolve(Thing thing). 나는 매핑 할 Thing에의 Optional&lt;Other&gt;의를 첫 번째를 얻을 Other. 확실한 해결책은을 사용하는 things.stream().flatMap(this::resolve).findFirst()것이지만 flatMap스트림을 반환 Optional해야하며 stream()메소드 가 없습니다 (또는 스트림 Collection으로 변환하거나 …

5
Java Streams가 왜 일회용입니까?
IEnumerable실행 파이프 라인을 원하는만큼 여러 번 실행할 수있는 C #과 달리 Java에서는 스트림을 한 번만 '반복'할 수 있습니다. 터미널 작업을 호출하면 스트림이 닫히고 사용할 수 없게됩니다. 이 '기능'은 많은 힘을 빼앗아갑니다. 나는 그 이유가 기술적 인 것이 아니라고 생각합니다 . 이 이상한 제한 뒤에 디자인 고려 사항은 무엇입니까? 편집 : …

4
Java 8 스트림 : 다중 필터 및 복잡한 조건
때로는 Stream둘 이상의 조건 으로 필터를 필터링하려고합니다 . myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... 또는 복잡한 조건과 단일로 동일하게 수행 할 수 있습니다 filter. myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... 내 생각에는 두 번째 접근 방식이 더 나은 성능 특성을 가지고 있지만 잘 모르겠습니다 …

19
Java 스트림을 1 및 1 요소로 필터링
Java 8을 사용 Stream하여의 요소를 찾으려고합니다 LinkedList. 그러나 필터 기준과 일치하는 항목이 하나만 있음을 보증하고 싶습니다. 이 코드를 보자 : public static void main(String[] args) { LinkedList&lt;User&gt; users = new LinkedList&lt;&gt;(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new User(3, "User3")); User match = users.stream().filter((user) -&gt; user.getId() == 1).findAny().get(); System.out.println(match.toString()); } …

5
Java 8 스트림의 .min () 및 .max () : 왜 컴파일됩니까?
참고 :이 질문은 이전 SO 질문 인 데드 링크에서 비롯되었지만 여기에 있습니다 ... 이 코드를 참조하십시오 ( 참고 :이 코드는 "작동하지 않는다"는 것을 알고 Integer::compare있어야합니다. 링크 된 질문에서 추출했습니다 . final ArrayList &lt;Integer&gt; list = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); System.out.println(list.stream().max(Integer::max).get()); System.out.println(list.stream().min(Integer::min).get()); .min()및 의 javadoc에 따르면 .max()둘 다의 인수는이어야합니다 Comparator. 그러나 여기에서 메소드 …
215 java  java-8  java-stream 

9
Java8 : Stream / Map-Reduce / Collector를 사용하여 HashMap <X, Y>에서 HashMap <X, Z>로
-&gt; List에서 간단한 Java를 "변환"하는 방법을 알고 있습니다 .YZ List&lt;String&gt; x; List&lt;Integer&gt; y = x.stream() .map(s -&gt; Integer.parseInt(s)) .collect(Collectors.toList()); 이제 기본적으로 Map과 동일하게 수행하고 싶습니다. INPUT: { "key1" -&gt; "41", // "41" and "42" "key2" -&gt; "42 // are Strings } OUTPUT: { "key1" -&gt; 41, // 41 and 42 …

13
Java 8을 사용하여 객체 목록을 toString () 메소드에서 얻은 문자열로 변환
Java 8에는 유용한 새로운 것들이 많이 있습니다. 예를 들어, 객체 목록을 스트림으로 반복 한 다음 Object인스턴스 의 특정 필드에서 값을 합칠 수 있습니다. 예 : public class AClass { private int value; public int getValue() { return value; } } Integer sum = list.stream().mapToInt(AClass::getValue).sum(); 따라서 인스턴스 String의 toString()메소드 출력을 한 …

4
Java 8 스트림 및 어레이 작업
방금 새로운 Java 8 스트림 기능을 발견했습니다. 파이썬에서 왔을 때, 합산과 같은 배열에서 연산을 수행하는 깔끔한 방법이 있는지 궁금해했습니다. 두 배열을 "한 줄 피 토닉"방식으로 곱한 것입니까? 감사

8
Java 8-목록을 변환하는 가장 좋은 방법 : map 또는 foreach?
나는 목록이 myListToParse내가 요소를 필터링하고 각 요소에 대해 방법을 적용하고, 다른 목록에 결과를 추가 할 myFinalList. Java 8에서는 두 가지 방법으로 할 수 있음을 알았습니다. 나는 그들 사이의보다 효율적인 방법을 알고 싶습니다. 왜 한 가지 방법이 다른 방법보다 낫습니다. 세 번째 방법에 대한 제안이 열려 있습니다. 방법 1 : myFinalList …
188 java  java-8  java-stream 

19
술어에 의해 스트림 제한
(잠재적으로 무한)을 제한하는 Java 8 스트림 작업이 있습니까? Stream첫 번째 요소가 술어와 일치하지 않을 때까지 있습니까? Java 9에서는 takeWhile아래 예와 같이 10 미만의 모든 숫자를 인쇄 할 수 있습니다 . IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; n &lt; 10) .forEach(System.out::println); Java 8에는 그러한 작업이 없으므로 일반적인 방법으로 …
187 java  java-8  java-stream 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.