💻IT/Java 6

[Java] Java 8 Method Reference (메소드 참조)

메소드 참조 (Method Reference) 메소드 참조는 람다 표현식의 특별한 타입중 하나이다. 이미 구현되어 있는 메소드를 참조함으로써, 람다식을 좀 더 심플하게 만들 때 사용된다. 4가지 타입의 메소드 참조가 있다. 1. 정적 메소드 참조 문법 ContainingClass::staticMethodName 정적 메소드가 포함된 클래스::정적 메소드명 예제 // 람다식으로 list의 원소 절대값 만들기 List list = Arrays.asList(1, -5, 2, -7, -3); list.stream().map(num -> Math.abs(num)) .forEach(num -> System.out.println(num)); // 정적 메소드 참조로 변경 list.stream().map(Math::a..

💻IT/Java 2021.12.12

[Java] Java 8 Functional Interface

Functional Interface Functional Interface들은 java.util.function 패키지에 포함되어 있으며 람다 표현식이나 메소드 참조를 위한 target type을 제공한다. Functional Interface는 인터페이스이면서 내부에 추상 메소드를 한 개만 가진다. 해당 package 내에 많은 Functional interface가 존재하지만, 그 중에서도 중요한 4가지의 Functional interface에 대해서 알아보고자 한다. (Predicate, Function, Consumer, Supplier) Predicate Predicate는 인자를 받아서 true나 false를 리턴한다. @FunctionalInterface public interface Pre..

💻IT/Java 2021.12.10

[Java] Java 8 Optional

참고 https://www.oracle.com/technical-resources/articles/java/java8-optional.html https://www.baeldung.com/java-difference-map-and-flatmap NullPointerException !? 개발을 하면서 많이 경험했던 Exception은 아마 NullPointerException 이 아닐까 싶다. 위와 같은 모델 구조가 있다고 가정했을 때, 차에 포함된 네비게이션의 버전을 알고 싶다. String version = computer.getNavigation().getVersion(); Car에서 Navigation은 옵션 중 하나이다. 만약 Navigation이 없는 차라면 해당 코드 호출 시 NullPoin..

💻IT/Java 2021.12.09

[Java] Java 8 Stream API

참고 https://www.baeldung.com/java-8-streams-introduction https://www.baeldung.com/java-8-streams Stream API란? JAVA8의 새로운 기능 Stream 기능에는 시퀀셜한 데이터를 처리하는 클래스들이 포함되어있음 Stream 생성 collection이나 array의 stream() Stream의 of() String[] arr = new String[]{"a", "b", "c"}; Stream stream = Arrays.stream(arr); stream = Stream.of("a", "b", "c"); Empty Stream Stream.empy()로 element가 없는 stream을 생성할 수 있다. Stream str..

💻IT/Java 2021.12.03

[Java] Deque 자료 구조 (LinkedList 메소드)

Deque 구현체로 ArrayDeque와 LinkedList 를 주로 사용한다. LinkedList에 값을 넣고 뽑기 위한 많은 메소드를 있는데, 헷갈리는 점이 있어서 정리한다. Deque란? 덱(deque, "deck"과 발음이 같음 ← double-ended queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다. (위키백과, 우리 모두의 백과사전.) 예제1. First에 넣어볼까? LinkedList test = new LinkedList(); test.offerFirst(1); test.offerFirst(2); test.offerFirst(3); System...

💻IT/Java 2021.11.15

[Java] Convert Array to List / Convert List to Array

Java로 코딩테스트 풀다보면 Array를 List로, List를 Array로 변환할 일이 종종 생깁니다. For문 사용은 제외하고 자주 쓰는 함수 정리합니다. Array를 List로 변환하기 Arrays.asList() 함수를 사용하여 Array를 List로 변환할 수 있습니다. // 1. Convert String[] to List : Arrays.asList(String[]) String[] arr1 = new String[]{"A", "B", "C", "D"}; List list1 = Arrays.asList(arr1); for(String s : list1){ System.out.println(s); } List를 Array로 변환하기 1) List.toArray() 사용 List list3 =..

💻IT/Java 2021.10.18