Java/기본 14

[Java] 스트림(Stream)

Java에서 스트림(stream)은 데이터 처리 작업을 보다 간결하고 효율적으로 수행하기 위한 API로, Java8에 추가되었다.컬렉션(리스트, 집합 등)이나 배열 등의 데이터를 다룰 때, 필터링, 변환, 집계 등 다양한 작업을 선언형으로 할 수 있도록 돕는다.스트림은 데이터를 반복적으로 처리하는 대신 파이프라인 방식으로 처리하는 것이 특징이다.스트림을 간단히 말하면 데이터를 한 줄로 처리하는 작업 방식이라고 보면 된다.특징1. 선언형: for-loop와 같은 명령형 코드보다 간결하게 "무엇을 할지"에 집중2. 파이프라인 처리: 여러 연산을 체인 형식으로 연결해 순차적으로 처리3. 데이터 원본 불변성: 스트림 연산은 데이터 원본을 변경하지 않으며 새 스트림을 반환4. 지연 연산(Lazy Evaluatio..

Java/기본 2024.10.27

[Java] 표준 함수형 인터페이스

표준 함수형 인터페이스는 Java에서 자주 사용하는 기본적인 함수 형태를 미리 정의해 둔 인터페이스들로, java.util.function 패키지에 포함되어 있다. 얘네들은 람다와 메서드 참조를 더 간편하게 사용할 수 있도록 도와주는 착한 친구들이라고 보면 된다. 이런 인터페이스들은 주로 메서드가 하나만 있는 함수형 인터페이스고, 입력과 출력의 형태에 따라 적절한 이름과 구조를 가지고 있다. 종류1. Function: 입력값 T를 받아 출력값 R을 반환하는 함수메서드: R apply(T t)예시: 문자열을 받아 길이를 반환Function lengthFunction = s -> s.length();lengthFunction.apply("Java"); // 4 2. Consumer: 입력값 T를 받아 처리만..

Java/기본 2024.10.27

[Java] 메서드 참조

메서드 참조의 유형1. 정적 메서드 참조형식: ClassName::staticMethod 2. 인스턴스 메서드 참조 2-1. 특정 객체형식: instance::methodName- 특정 객체의 인스턴스 메서드를 참조한다- 메서드 참조에서 instance는 이미 생성된 특정 객체를 의미한다- 이 경우, 참조된 메서드는 주로 인수를 받지 않거나, 받더라도 객체 내부의 상태를 직접 조작할 때 사용된다.Class Pasta { void cook(String sauce) { // 로직 }}public class Main { public static void main(String[] args) { Pasta pasta = new Pasta(); List sauce = Arrays.a..

Java/기본 2024.10.27

[Java] 추상 클래스

추상클래스추상 클래스는 일반 클래스와 비슷하지만 인스턴스를 직접 생성할 수 없고, 추상 메서드를 포함할 수 있는 특별한 클래스이다.주로 상속을 통해 공통기능을 제공하면서도, 일부 메서드는 구체적인 구현을 자식 클래스에 맡기기 위해 사용 된다.특징1. 직접 인스턴스화 할 수 없다.- new Animal() 처럼 바로 객체를 생성할 수 없다.2. 추상 메서드를 가질 수 있다.- 추상 메서드는 메서드의 선언만 있고 구현이 없다. 자식 클래스에서 반드시 구현해야 함3. 상속을 통해 공통 기능을 제공한다. 예를 들어 보자.파스타의 종류는 굉장히 다양하다. Pasta 라는 추상 클래스가 있을 때, 각 파스타마다 다른 레시피를 안내하도록 자식 클래스에서 구현할 수 있다// 추상 클래스abstract class Pas..

Java/기본 2024.10.27