이펙티브 자바 - 42

참치돌고래·2022년 12월 27일
0

이펙티브 자바

목록 보기
21/21

익명 클래스보다는 람다를 사용하라.

예) List 에 있는 string 길이로 정렬하기

List<String> words = new ArrayList<>();
words.add("a");
words.add("asdasda");
words.add("abc");

/**
* 방법 1
**/
Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length());

/**
* 방법 2
**/
Collections.sort(words, Comparator.comparingInt(String::length));

/**
* 방법3
**/
words.sort(comparingInt(String::length));

람다보다는 메서드 참조를 사용하자.

/**
* 람다 사용
**/
List<String> strings = Arrays.asList("a", "bb", "ccc", "dddd");
strings.sort((s1, s2) -> s1.length() - s2.length());

/**
* 메소드 참조
**/
strings.sort(Comparator.comparingInt(String::length));
  • 정적 : Integer::parseInt
  • 한정적 : Instant.now()::isAfter
  • 비한정적 : String::toLowerCase
  • 클래스 생성자 : TreeMap<K,V>::new
  • 배열 생성자 : int[]::new
profile
안녕하세요

0개의 댓글