Java/[Java8] 모던인자바액션

    스트림 활용

    스트림 활용

    필터링 filter 메서드 boolean을 반환하는 함수를 인수로 받아서 일치하는 모든 요소를 포함하는 스트림 반환 distinct 메서드 고유 요소로 이루어진 스트림을 반환 (중복 제거) 스트림 슬라이싱 자바 9 는 스트림의 요소를 효과적으로 선택할 수 있도록 takeWhile, dropWhile 새로운 메서드 지원 takeWhile filter 와 달리 참이 아닐경우 거기서 멈춤 (filter는 참인 요소 모두 확인해서 가져옴) dropWhile 거짓이 되는 지점까지 발견된 요소를 버린다. (takeWhile과 반대) List sliceMenu1 = menu.stream() .filter(dish -> dish.getCalories() < 320) .collect(Collectors.toList())..

    스트림

    자바 8 스트림 API 특징 선언형 : 더 간결하고 가독성이 좋아진다. 조립할 수 있음 : 유연성이 좋아진다. 병렬화 : 성능이 좋아진다. 학습에 사용할 클래스 package com.company; public class Dish { private final String name; private final boolean vegetarian; private final int calories; private final Type type; public Dish(String name, boolean vegetarian, int calories, Type type) { this.name = name; this.vegetarian = vegetarian; this.calories = calories; this.ty..

    람다 표현식

    람다의 특징 익명 함수를 단순화 한것이라고 할 수 있다. 익명 이름이 없으므로 익명이라 표현한다. 구현해야할 코드에 대한 걱정거리가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. (String s) -> s.length(); (Apple a) -> a.getWeight() > 150 (int x, int y) -> { System.out.println("Result:"); System.out.println(x + y); } () -> 42 (Ap..

    동작 파라미터화 코드 전달

    인터페이스를 사용해서 한개의 파라미터로 다양한 동작 가능 interface ApplePredicate { boolean test(Apple apple); } enum Color { RED, GREEN } class Apple { int weight; Color color; public Apple(int weight, Color color) { this.weight = weight; this.color = color; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public Color getColor() { return color; } public void setCo..