전체 글(64)
-
Date & Calendar
Date문제점지역화 안됨 → 이점 보완한 것이 Calendar 클래스Java에서 Date 클래스는 날짜와 시간을 표현하는 데 사용되는 클래스로, java.util 패키지에 포함되어 있습니다. 이 클래스는 기본적으로 날짜와 시간의 정보를 저장하고 조작하는 다양한 메서드를 제공합니다. 그러나 Date 클래스는 몇 가지 단점이 있어, Java 8부터는 java.time 패키지의 LocalDate, LocalTime, LocalDateTime 등과 같은 새로운 날짜 및 시간 API를 사용하는 것이 권장됩니다.사용 코드package javaUtilExam;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;p..
2024.11.08 -
Map
Map특징 : key : value 쌍으로 저장하는 자료구조 키는 중복될 수 없고, 값은 중복 가능 (파이썬에서는 딕셔너리와 같음)종류Map 종류 구현 방식 주요 특징 접근 시간복잡도 정렬 여부 스레드 안전성 사용 용도HashMap해시 테이블- 키와 값을 해시 함수로 관리함 - 중복된 키 허용하지 않음 - null 키와 null 값 허용평균 O(1)정렬되지 않음비동기- 빠른 데이터 조회가 필요한 경우 - 키-값 매핑이 자주 변경되는 경우LinkedHashMap해시 테이블 + 연결 리스트- 입력 순서를 유지함 - 순서대로 반복 가능평균 O(1)입력 순서 유지비동기- 데이터 입력 순서가 중요한 경우 - 캐시 구현TreeMap레드-블랙 트리- 키를 정렬하여 관리 (기본: 오름차순) - Comparator를 통..
2024.11.06 -
List
List특징데이터 중복 가능가변 객체제너릭을 이용해서 사용할 타입을 지정 가능ArrayList값이 순차적으로 저장되어있어서 접근 속도 즉, 출력할 때 속도가 빠르지만 값을 삭제할 경우 shift연산을 수행해야해서 비효율적이다. 이렇게 값이 중간에 삽입되거나 삭제하는 연산을 많이 해야하는 경우는 LinkedList를 사용하는 것이 좋다.LinkedList각 노드가 앞뒤의 포인터로 연결되어있어서 순차적으로 저장하지 않아도 순서를 알 수 있다. 하지만 값에 접근할 때 ArrayList에 비해 속도가 느리다.(이미지는.. gpt가 그려줬는데.. 뭔가 아쉽다..)정리접근이 잦다면 ArrayList가, 삽입/삭제가 잦다면 LinkedList가 적합하다리스트 종류구현 방식주요 특징접근 시간복잡도삽입/삭제 시간복잡도사..
2024.11.05 -
Set (HashSet, TreeSet)
특징 : 순서가 없고, 중복 허용 안함HashSetHashSet 주요 메서드와 시간복잡도메서드 역할 평균 시간복잡도 최악 시간복잡도add(E e)값을 추가하고, 추가 성공 시 true, 이미 있으면 false 반환O(1)O(n)remove(Object o)값을 제거하고, 성공 시 true, 없으면 false 반환O(1)O(n)contains(Object o)값이 존재하면 true, 없으면 false 반환O(1)O(n)size()저장된 요소의 개수를 반환O(1)O(1)isEmpty()HashSet이 비어 있으면 true, 아니면 false 반환O(1)O(1)clear()모든 요소를 제거O(n)O(n)iterator()요소를 순회할 수 있는 Iterator 반환O(1)O(1)HashSet의 시간복잡도평균 시..
2024.11.05 -
Generic
클래스나 메서드에서 데이터 타입을 미리 지정하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능이다. 이렇게 하면 컴파일러가 타입 검사를 할 수 있어서 코드의 안정성과 재사용성을 높일 수 있다.보통 Collection 프레임워크에서 많이 사용하는데, 알고리즘 풀이할 때 자주 사용하는 Queue를 생성할 때 사용하는 것이 제네릭 이었다. 보통 Queue,Queue 으로 많이 사용했는데 아무렇지 않고 당연스럽게 사용하던 것이 제네릭이었다는 것이다. 이런 경험이 있어서 타입을 사용할때 지정한다는 것과 컴파일러가 타입 검사를 할 수 있다는 말이 더 와 닿았다.제네릭 클래스 생성(T는 정해진 이름X)package javaUtilExam;public class Box { private T obj;..
2024.11.04 -
java.lang패키지/오토박싱
java.lang패키지는 import하지 않고도 사용할 수 있다.wrapper8개의 기본 타입을 객체로 변환시킨다.8개의 기본 데이터 타입의 맵핑되는 각각의 클래스들을 모두 모아서 래퍼클래스라고 한다.Object : 최상위 클래스StringStringBufferStringBuilderSystemMath오토박싱기본타입을 객체 타입으로 선언할 때 자동으로 wrapper로 감싸주어 객체타입으로 변환을 해주는 것int n1 = 5;Integer n2 = n1; // 오토박싱 오토언박싱객체 타입을 기본타입에 선언했을 때 자동으로 기본타입으로 변환해주는 것Integer n1 = 5; // 오토박싱int n2 = n1; // 오토언박싱
2024.11.04