Closed okhee closed 1 year ago
Collections.sort(words, new Comparator<String>() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }
Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length()) );
Collections.sort(words, comparingInt(String::length)); words.sort(comparingInt(String::length)); // java 8 List 인터페이스에 추가된 sort 메소드 활용
item34 Operation 열거 타입을 변경해보자
public enum Operation { PLUS("+") { public double apply(double x, double y) { return x+y; } }, MINUS("-") { public double apply(double x, double y) { return x-y; } }, TIMES("*") { public double apply(double x, double y) { return x*y; } }, DIVIDE("/") { public double apply(double x, double y) { return x/y; } }; private final String symbol; Operation(String symbol) { this.symbol = symbol; } @Overide public String toString() { return symbol; } public abstract double apply(double x, double y); }
public enum Operation { PLUS("+", (x, y) -> x + y), MINUS("-", (x, y) -> x - y), TIMES("*", (x, y) -> x * y), DIVIDE("/", (x, y) -> x / y); private final String symbol; private final DoubleBinaryOperation op; // Double 타입 인수 2개를 받아 Double 타입 결과를 전달 Operation(String symbol, DoubleBinaryOperation op) { this.symbol = symbol; this.op = op; } @Overide public String toString() { return symbol; } public double apply(double x, double y) { return op.applyAsDouble(x, y); } }
item 42 : 익명 클래스보다는 람다를 사용하라
item34 Operation 열거 타입을 변경해보자