본문 바로가기

프로그래밍/Java28

[Java 8] Java 8 Stream API Tutorial 안녕하세요. 오늘은 Java 8의 기능 중 하나인 Stream에 대해서 알아보도록 하겠습니다. Stream은 배열, List등의 요소들의 처리를 담당하는 Class로써 기존의 배열처리를 간단하게 해주며, functional style로 처리할 수 있도록 해줍니다. 그리고 병렬처리 Optional 등 다양한 처리를 할 수 있도록 지원해줍니다. Stream 생성 Stream을 사용하기 위해서는 Stream을 생성할 필요가 있습니다. collection 또는 배열을 이용해서, 또는 자체적으로 생성할 수 있습니다. 아래와 같이 말이죠. // from Array String[] arr = new String[]{"a","b","c"}; Stream stream = Arrays.stream(arr); // from.. 2019. 11. 26.
[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.