전체 글 97

39. 컬렉션 프레임워크-Map

Map 인터페이스키(Key)와 값(value)의 쌍으로 요소를 저장하는 데이터 구조키는 고유한 데이터를 가짐(중복 불허용)동일한 키에 다른 값을 전달하면 기존 값이 새 값으로 덮어씌워짐서로 다른 키에 동일한 값이 들어갈 수 있음키의 '유일성'과 값의 '중복성'을 보장함순서는 보장하지 않음(LinkedHashMap은 예외)>>키값을 기반으로 빠른 검색이 가능 Map 인터페이스 종류( 구현체 )HashMap가장 많이 사용됨키와 값에 null 허용빠른 검색과 삽입 성능을 제공함순서 유지가 안됨 TreeMap키에 따른 자동 정렬 보장키에 null값을 허용하지 않음 사용 예시)public static void main(String[] args) { // Map 인터페이스 메소드 // Map키 인스턴스명..

java 2025.03.06

38. 컬렉션 프레임워크-Set

Set 인터페이스중복 허용 불가, 순서 없음, null 데이터 포함 가능중복된 요소를 포함하지 않는 객체의 집합임객체간에 저장 순서를 기억하지 않음(저장과정이 랜덤은 아님.저장하는 규칙은 있음) cf ) List 인터페이스: 중복 허용, 순서 있음, null포함 가능 Set 컬렉션 종류(구현체) HashSet가장 많이 사용되는 Set 구현체빠른 데이터 접근, 삽입을 지원함정렬이나 순서 보장을 하지 않음 LinkedHashSetHashSet에 순서 기능을 넣은 것(확장 형태)중복은 허용하지 않으나 순서는 있음 TreeSet데이터가 자동으로 정렬됨중복 제거와 정렬된 순서의 유지가 필요한 경우 사용중복은 허용하지 않지만 순서는 유지됨 Set 컬렉션 예시)public static void main(String[..

java 2025.03.06

실습) 리스트 활용

이벤트 관리 시스템 이벤트 참가자 명단, 대기열 관리를 위한 시스템 참가자는 사전 등록된 명단을 통해 이벤트에 참가 명단이 가득 찰 경우 대기열로 추가, 참가자가 떠나면 대기열의 다음 사람이 추가 이벤트 참가자 명단 관리: 사전 등록, 이벤트 당일 추가 참가자 등록 X ArrayList 목록 추가O, 삭제X, 참가자 조회 O 대기열 관리 이벤트의 한정된 좌석, 좌석이 모두 차면 추가 참가자는 대기열에 등록 LinkedList 목록 추가O, 삭제 O, 참가자 조회 Xclass EventManagement { // 필드 ArrayList participantList = new ArrayList(); LinkedList waitingQueue = new LinkedList(); // 메소드 void addP..

java 2025.03.06

37. 컬렉션 프레임워크-List

리스트 인터페이스순서가 유지되고 중복된 값을 저장 가능저장된 순서에 따라 데이터를 관리하는 다양한 메소드를 정의함 List의 특징인덱스를 통해 정확한 위치 지정중복 가능다양한 구현체를 통해 사용 가능 List의 종류 ArrayList내부에서 배열을 사용한 요소 저장빠른 읽기 성능/ 느린 삽입, 삭제 성능빠른 조회 기능에 적합, 삽입과 삭제 시 데이터 이동이 필요하여 상대적 성능 저하가 있음 LinkedList내부에서 이중 연결 리스트를 사용한 요소 저장빠른 삽입, 삭제 성능/ 느린 읽기 성능연결 기반 데이터 관리: 비순차적 데이터 작업에 적합, 특정 요소 접근시 순차 탐색이 필요해 성능이 저하됨 리스트 인터페이스 예시)public static void main(String[] args) { // L..

java 2025.03.06

36. 컬렉션 프레임워크

프레임워크(frame + work)제공받은 일정한 요소와 틀,규약을 가지고 무언가를 만드는 일 컬렉션 프레임워크데이터를 저장하고 처리하는 자료구조의 표준화된 설계다양한 자료 구조를 제공, 데이터를 효율적으로 관리하는 것을 지원한다 컬렉션 프레임워크의 주요 '인터페이스'와 특성 Collection 자바 컬렉션 프레임워크의 최상위 인터페이스(하위에 List, Set 등이 있음)데이터의 집합을 다룸 List데이터의 순서가 유지됨(Index 번호)데이터의 중복이 가능함>> ArrayList, LinkedList, Vector 등등 Set데이터의 순서가 유지되지 않음(몇몇 구현체는 예외)데이터의 중복이 불가능>> HashSet, TreeSet*, LinkedHashSet*등등(*이 붙은 구현체는 정렬/순서가 제공..

java 2025.03.06

실습) 생일까지 남은 일수를 계산하는 프로그램

import java.time.LocalDate;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;import java.util.Scanner;public class Practice { public static void main(String[] args) { // 생일까지 남은 일수를 계산하는 프로그램 // 사용자로부터 생년월일을 입력받고, 다가오는 생일까지 남은 일수를 반환 Scanner sc = new Scanner(System.in); // 사용자로부터 생년월일 입력받기(형식 YYYY-MM-DD) System.out.println("생년월일을 입력하세요 (형식 YYYY-MM-DD)"); St..

java 2025.03.05

35. API-java.util

java.util 패키지자바에서 가장 많이 쓰이는 기능을 모아둔 패키지컬렉션 프레임워크, 유틸리티(배열, 컬렉션 등), 날짜 및 시간 처리, 랜덤 값 생성, 입력기 등 Random 클래스 사용public class JavaUtil { public static void main(String[] args) { Scanner sc1 = new Scanner(System.in); sc1.close(); Random random = new Random();// 랜덤 객체 생성 int num = random.nextInt(); System.out.println(num);// 무작위 정수값 출력 int num2 = random.nextInt(100);// 0부터 해당 인자값 사이의 난수 Syst..

java 2025.03.05

34. API-java.time

java.time 패키지ISO-8601 표준을 기반으로 설계YYYY-MM-DDThh:mm:ss.sssZ 구조improt문을 사용하여 클래스를 명시해야함 예시)public class JavaTime { public static void main(String[] args) { // LocalDate - 날짜 // 날짜(연도, 월, 일) // .now(): 현재 날짜 반환 // .of(연도, 월, 일): 특정 날짜를 국제 표기법 상 반환 LocalDate today = LocalDate.now(); System.out.println(today);// 2025-02-19 LocalDate yesterday = LocalDate.of(2025, 2, 18); System.out.println(y..

java 2025.03.05

33. API-java.lang

java.lang 패키지자바 프로그램의 가장 기본적인 클래스들을 포함별도의 import 없이 사용 가능 Object 클래스자바의 모든 클래스의 최상위 클래스모든 클래스는 Object 클래스를 상속받음 Math 클래스수학 연산 및 함수를 제공하는 클래스모든 필드와 메소드는 static String문자열 조작을 위한 다양한 메소드 제공 toString() 메소드객체의 문자열 표현을 반환기본 구현: '객체의 클래스 이름 @ 메모리 주소' 반환>>오버라이딩(재정의) 해서 원하는 정보를 반환class MyClass extends Object { private int id; private String name; MyClass(int id, String name) { this.id = id; this.name ..

java 2025.03.05

32. API

API란?Application Programming Interface(미리 정의한 약속)소프트웨어 또는 시스템 간 상호작용을 가능하게 하기위해 정의된 메소드의 집합소프트웨어나 하드웨어와 상호작용할 수 있는 인터페이스를 제공 자바API클래스자바 프로그래밍 내에서 미리 정의된 클래스와 메소드의 집합자바 표준 라이브러리로 제공라이브러리 내에서 다양한 패키지로 나뉘며, 각 패키지는 특정 기능을 담당 java.lang 패키지기본 클래스(String, Math, System 등)를 포함자동으로 포함(import 없이 사용 가능) java.io 패키지입출력과 관련된 클래스File, InputStream 등과 같은 외부 입출력과 관련됨 java.util 패키지유틸리티 클래스(List, Map, Date 등)를 포함

java 2025.03.05