Dev Repo Log
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (60)
      • DataBase (4)
        • MySQL (1)
      • Algorithm (14)
      • Project (3)
        • teamProject1 (3)
      • Programming Language (20)
        • Java (18)
        • JavaScript (1)
        • Kotlin (1)
      • Learning (16)
        • LLM (1)
        • Git (0)
        • TIL (8)
        • Design Pattern (2)
        • Servlet & JPA (5)
      • Software Development Tools (3)
        • IDE (3)
        • tools (0)
      • Others (0)
  • 홈
  • 태그
  • 방명록
Programming Language/Java

Stream

1. 스트림이란? 정의: 자바 8부터 도입된 컬렉션 데이터 처리 API로, 선언적 프로그래밍과 병렬 처리를 지원합니다.목적:복잡한 컬렉션 연산을 간결하고 가독성 있게 표현.병렬 실행을 통해 성능 최적화.기존 반복문(for, while)의 코드 중복 문제 해결.  2. 스트림의 특징 선언적 접근: "무엇을 할지" 정의 (How가 아닌 What).파이프라인 구조: 중간 연산(Intermediate)과 최종 연산(Terminal) 조합.지연 평가(Lazy Evaluation): 최종 연산이 호출될 때까지 중간 연산이 실행되지 않음.병렬성 지원: parallelStream()으로 멀티 스레드 처리 간편화.원본 데이터 보존: 원본 컬렉션을 변경하지 않고 새 데이터 시퀀스 생성. 3. 스트림 파이프라인 구조 컬렉션..

2025. 3. 5. 12:02
Programming Language/Java

람다 표현식 (Lambda Expressions)

1. 람다 표현식이란? 정의: 자바 8부터 도입된 익명 함수(Anonymous Function)를 간결하게 표현하는 문법입니다.목적:함수형 프로그래밍 지원을 통해 코드의 간결성과 가독성 향상.컬렉션 처리, 스트림 API, 이벤트 핸들링 등에서 효율적인 구현.기존 익명 클래스의 번거로움 해결. 2. 기본 문법(매개변수) -> { 실행문 } 매개변수:타입 생략 가능 (컴파일러가 추론).매개변수 1개면 괄호 () 생략 가능 (예: x -> x + 1).본문:단일 실행문일 경우 {}와 return 생략 가능 (예: (a, b) -> a + b).복잡한 로직은 {}로 감싸서 작성. 3. 함수형 인터페이스(Functional Interface) 조건: 단 하나의 추상 메서드를 가진 인터페이스.예시:Runnable:..

2025. 3. 5. 11:39
Programming Language/Java

[Collection] PriorityQueue Guide

PriorityQueue는 자바의 컬렉션 프레임워크에서 제공하는 우선순위 큐(힙) 구현체로, 요소들이 정렬된 순서대로 처리됩니다. 이 글에서는 기본 사용법부터 심화된 활용법까지 다양한 예제를 통해 PriorityQueue의 기능을 알아보겠습니다. 1. PriorityQueue 기본 개념 PriorityQueue는 기본적으로 최소 힙(Min-Heap) 구조를 따릅니다. 즉, 기본 정렬 기준에서는 가장 작은 값이 우선적으로 처리됩니다. PriorityQueue 선언 방법import java.util.PriorityQueue;public class Main { public static void main(String[] args) { PriorityQueue pq = new PriorityQu..

2025. 3. 4. 09:13
Algorithm

[15684] 사다리 조작 리뷰 및 코드 개선

1. 문제 개요 백준 15684번 - 사다리 조작은 사다리 게임에서 모든 세로선이 자기 자신으로 도착하도록 만들기 위해 추가해야 하는 최소 가로선 개수를 구하는 문제입니다. 최대 3개의 가로선을 추가할 수 있으며, 그 이상이 필요하거나 불가능할 경우 -1을 출력합니다. 입력첫 번째 줄:세로선 개수 N (2 ≤ N ≤ 10)이미 놓여진 가로선 개수 M (0 ≤ M ≤ (N-1)×H)가로선을 놓을 수 있는 높이 H (1 ≤ H ≤ 30)다음 M개의 줄:a b 형식으로 가로선 위치 제공 (a번 높이에 b번 세로선과 b+1번 세로선이 연결됨) 출력추가해야 하는 최소 가로선 개수 출력 (최대 3개)불가능한 경우 -1 출력2. 기존 코드 분석import java.io.BufferedReader;import java..

2025. 3. 2. 02:51
Learning/Design Pattern

[Design Pattern] Iterator

디자인패턴: Iterator 패턴 - 컬렉션 순회의 효율적 추상화(개념, 예시, 그리고 깨달은 점) 1. Iterator 패턴이란? 공식 정의 (GoF 디자인패턴) 컬렉션의 내부 구조를 노출하지 않고 요소들을 순회하는 방법을 제공.컬렉션과 순회 로직의 결합도를 낮추고, 다양한 순회 방식을 유연하게 구현 가능. 핵심 키워드추상화: 컬렉션 구현과 순회 방식 분리단일 책임 원칙: 컬렉션(데이터 관리) vs Iterator(순회)확장성: 새로운 순회 방식 추가 용이  2. 왜 Iterator를 사용할까? 📌 문제 상황 배열, 리스트, 트리 등 다양한 컬렉션 구조 존재.클라이언트가 컬렉션 내부 구현을 알면 코드 복잡성 증가 및 의존성 발생.// 안 좋은 예: 리스트 구현에 의존적인 순회for (int i=0; ..

2025. 3. 1. 17:51
  • «
  • 1
  • 2
  • 3
  • »
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

공지사항

전체 카테고리

  • 분류 전체보기 (60)
    • DataBase (4)
      • MySQL (1)
    • Algorithm (14)
    • Project (3)
      • teamProject1 (3)
    • Programming Language (20)
      • Java (18)
      • JavaScript (1)
      • Kotlin (1)
    • Learning (16)
      • LLM (1)
      • Git (0)
      • TIL (8)
      • Design Pattern (2)
      • Servlet & JPA (5)
    • Software Development Tools (3)
      • IDE (3)
      • tools (0)
    • Others (0)

태그

  • #객체지향
  • #dto
  • #그래프 탐색
  • #intellij
  • #rancher desktop
  • #record
  • #JavaScript
  • #Servlet
  • #불공변성
  • #srid
  • #docker
  • #AI활용
  • #그래프 이론
  • #Stream
  • #디자인패턴
  • #행위패턴
  • #BFS
  • #구현
  • #Kotlin
  • #브루트포스
  • #robopojo
  • #예외처리
  • #Java
  • #Effective Java
  • #leetcode
  • #백트래킹
  • #MySQL
  • #JPA
  • #시뮬레이션
  • #제네릭
MORE

블로그 인기글

Powered by Privatenote Copyright © Dev Repo Log All rights reserved. TistoryWhaleSkin3.4

티스토리툴바