Java 스트림(Stream) 사용 시 주의사항 최근에 Java의 Stream API를 활용하면서 경험했던 오류들에 대한 내용을 정리한다. 1. 스트림의 재사용 말 그대로 한 번 사용했던 스트림을 다시 한번 사용할 경우 발생하는 오류이다. 흔하게 접할 수 있는 실수이므로 주의하자. Stream은 컬렉션이 아니기 때문에 재사용할 수 없다. 예제1) // 문자열 스트림 생성 Stream langNames = Stream.of("Java", "C++", "Python", "Ruby"); // 스트림 내 모든 요소 출력 langNames.forEach(System.out::println); // "Java" 만 제외한 스트림을 다시 생성... Exception이 발생한다. Stream filtered = lan..
Stream
JAVA - List 중복데이터 제거하는 방법 2가지 최근에 코딩테스트 준비를 하다보면 input으로 주어지는 배열이 자주 등장하는데 로직의 효율성을 위해 중복제거해야 할 경우가 간혹 있었기 때문에 List 중복제거에 대해 기록한다. 1. Stream을 활용한 중복제거 - Java 1.8 이상 List reportList = Arrays.asList(new String[]{"a", "b", "c", "d", "a", "c"}) .stream() .distinct() .collect(Collectors.toList()); // 결과 : [a, b, c, d] 2. Set을 활용한 중복제거 List list = Arrays.asList(new String[]{"a", "b", "c", "d", "a", "c..
[Java] Stream - 자바 스트림 개념 및 사용법 💡 자바 스트림 (Stream ) 자바의 스트림(Stream)은 Java 8에 추가된 기능이다. 컬렉션에 저장되어 있는 요소들을 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 코드패턴(반복자)이다. 스트림은 람다식과 함께 사용되기때문에 데이터에 대한 처리를 매우 간결하게 작성할 수 있다는 장점과 내부 반복자라는 것을 사용하기 때문에 병렬처리가 쉽다는 장점이 있다. 💡 Iterator 이전까지는 컬렉션의 엘리먼트들을 순회하기 위한 Iterator 객체를 활용하였다. /* Iterator 활용 */ ArrayList arrList = new ArrayList(Arrays.asList("a","b","c","d","f")); Iterator ite..