본문 바로가기

자바22

[Java] Stream Stream 0. 시작하기에 앞서 Stream 을 더 깊이 이해하고, Stream 의 장점을 피부로 느끼기 위해서는 람다식(Lambda Expression) 에 대한 이해가 필요하다. 람다식에 대해서 잘 모른다면 아래 링크를 참고하길 바란다. 람다식(Lambda Expression) 1. Stream 이란 무엇인가? 스트림은 단어 그대로 데이터의 흐름이다. JDK 1.8 에서 스트림이 등장하기 전에는, 많은 양의 데이터를 다룰 때 Collection 이나 배열에 데이터를 담고, for 문이나 Iterator 를 사용해서 각각의 데이터에 접근했다. 하지만 for 와 Iterator 를 사용해 접근해서 데이터를 처리하는 코드는 너무 길고, "반복을 위한 코드" 때문에 "데이터를 처리 하는 핵심 로직"을 한 .. 2022. 10. 13.
[Java] 람다식(Lambda Expression) Lambda Expression 서론 - 함수형 프로그래밍 언어 Java는 객체지향언어로 만들어졌지만, JDK 1.8 부터 추가된 다양한 기능으로 인해 객체지향언어인 동시에 함수형 언어가 되었다. Lambda expression, Stream 등을 잘 활용하면 Java에서도 함수형 프로그래밍이 가능하다. 함수형 언어가 무엇인지, 그리고 함수형 언어의 장점이 무엇인지 궁금하다면 아래 링크를 참조하면 되겠다. 함수형 프로그래밍 언어가 대체 무엇일까? 함수형 프로그래밍이란? 위 링크들의 핵심 키워드만 정리하자면 다음과 같다. 순수 함수 (함수 외부로 Side-effect가 없음) Stateless (함수에 상태가 존재하지 않음. 따라서 같은 인자가 들어오면 항상 같은 결과를 반환함) Immutable (데이터.. 2022. 10. 12.
Exception 관련 클래스의 계층 구조 (Unchecked Exception/Checked Exception) 1. Exception class와 Error class의 계층 구조 Exception class와 Error class의 계층 구조는 다음과 같다. 두 클래스 모두 Throwable class를 상속받았다. Error가 발생하면 프로그램의 비정상 종료를 막을 수 없다. 하지만 Exception은 예외 처리를 통해 프로그램의 비정상 종료를 막을 수 있다. 2. RuntimeException class Exception class의 자식 클래스는 크게 RuntimeException과 나머지 클래스로 구분할 수 있다. RuntimeException class와 그 자식 클래스들은 주로 프로그래머의 실수에 의해서 발생될 수 있는 예외들이다. 배열의 범위를 벗어난다던가(ArrayIndexOutOfBoundsEx.. 2022. 3. 31.
[백준] 파일 합치기 (11066) Java 문제 링크 https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본 www.acmicpc.net 문제 요약 더보기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 .. 2022. 3. 29.
[프로그래머스] 입국심사 Java 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 요약 더보기 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다.. 2022. 3. 23.