본문 바로가기

Java86

[java8] 병렬 Stream Java에서는 다양한 방법으로 병렬 처리를 만들 수 있습니다. 기본적인 Thread 클래스를 이용할 수 있으며, ExecutorService를 이용하여 쓰레드풀도 쉽게 만들 수 있습니다. 그리고 CompleteFuture를 이용하면 쓰레드 간의 데이터 동기화, 실행 순서 등도 원하는 대로 조작할 수도 있습니다. 그리고 Java8애서 등장한 Stream은 병렬 처리를 쉽게 사용할 수 있게 메서드를 제공해줍니다. 만들어 놓은 Stream에 parallel를 추가하기만 하면 되죠. 오늘은 java8의 병렬 Stream에 대해서 알아보는 시간을 가져보겠습니다. Stream 예제 오늘 사용할 예제는 아래와 같습니다. 코드에는 java google style guide를 적용하였습니다. 메서드를 하나 만들도록 하겠.. 2020. 7. 26.
[java8] java의 주요 functional interface - function, supplier, consumer 안녕하세요. 오늘은 java의 functional interface에 대해서 몇가지 알아보는 시간을 가지도록 하겠습니다. functional Interface는 java8에서 나와 주로 람다식으로 자주사용되고 있으며 함수형 패러다임을 달성할 수 있도록 하는데 도움을 주고 있습니다. 해당 interface들은 java.util.function 패키지에 모두 포함되어 있습니다. 오늘은 이런 functional interface와 이용에 대해서 알아보도록 하겠습니다. Function Function은 1개의 파라미터를 받아서 1개의 결과를 반환하는 funtional interface입니다. Function로 사용할 수 있으며 T는 받는 파라미터, R은 반환하는 값입니다. 실제 인터페이스는 아래와 같습니다. @.. 2020. 5. 9.
[Java 8] Java 8, Stream의 Collectors 안녕하세요. 이전 시간에 우리가 Stream에 대해서 알아봤던 것 기억하시나요? 오늘은 이어서 Collectors에 대해서 이야기 해보려고 합니다. Collectors란 "Stream을 일반적인 List, Set등으로 변경시키는 Stream 메서드"라고 입니다. 오늘은 Collectors를 통해 어떤 형태로 변경할 수 있는지에 대해서 알아보겠습니다. 오늘 수고해줄 List는 아래의 String List입니다. List givenList = Arrays.asList("a", "bb", "cc", "bb"); 그렇다면 위의 메서드를 이용하여 한번 Stream을 Collectors로 다뤄보도록 하겠습니다. toCollections toList, toSet toList collector는 모든 Stream el.. 2019. 11. 29.
[Java 8] Java 8에서의 새로운 특징 안녕하세요.이미 자바는 11버전을 향해 달리고 있지만 우리는 아직 낯선게 사실입니다. 우리뿐만 그런건 아닙니다. 아직 많은 오픈소스에서 호환되지 않기도 하지요. 언젠간 11버전에 대해서도 알아보겠지만 일단 요즘 대부분의 표준이 되고 있는 Java 8 버전에 대해서 이전 버전들과의 차이점에 대해 알아보도록 하겠습니다. Interface의 변화 Java 8 버전이전에는 interface는 public abstract methods만 허용했습니다. 하지만 Java 8 부터는 interface에서 static과 default 메서드를 사용할 수 있습니다. static method public interface Vehicle { void run(); static String producer() { return ".. 2019. 11. 19.
[java 8] 예제로 보는 lambda식_비교하기 Lambda식 없이 정렬 하기 Java8이전의 Sort는 Comparator interface를 implement하여 구현하여 사용하곤 했습니다. 아래와 같이 말이지요. public class Human { private String name; private int age; // standard constructors, getters/setters, equals and hashcode } /* * Test Class [Client] */ @Test public void sortEntitiesByName() { List humans = Arrays.asList(new Human("A", 20), new Human("B", 21)); Collections.sort(humans, new Comparator().. 2019. 11. 18.
[Java 8] 람다 표현식과 주의 사항 안녕하세요. 오느른 JAVA8에 관하여 실습해보도록 하겠습니다. 먼저 한가지 짚고 넘어가도록 하겠습니다. JAVA 8에서 이루고자 했던 것은 무엇일까요? 제가 일반적으로 많이들 말하는 부분이 간결한 코드와 멀티코어 프로세서를 쉽게 사용할 수 있도록 하는 것이라고 합니다. 그중 간결성에 대해서는 여타 많은 언어들이 나오면서 JAVA는 배우기 힘든 언어가 되었습니다. 이러한 단점을 극복하고자 Optional, Funtion, Lambda 등 다양한 방법이 JAVA8에 나왔습니다. 오늘부터는 이러한 기능과 방법을 알아보도록하겠습니다. lambda식 예제와 Function lambda식의 사용예제를 보도록 하겠습니다. @FunctionalInterface public interface Foo { String m.. 2019. 11. 13.