JAVA의 정석

김민석·2026년 3월 2일
post-thumbnail

Calendar 클래스

추상 클래스라 인스턴스 생성 X

Calendar cal = new Calendar() // 에러
Calendar cal = Calendar.getInstance(); // OK

주요 메서드

get() - 날짜 및 시간 값 가져오기
set() - 날짜 및 시간 값 변경하기
clear() - set() 사용할 경우 clear() 사용해줘야함.

컬렉션 프레임웍 -java.util

다수의 객체를 다루기 위한 표준화된 프로그래밍 방식

  • 컬렉션 : 여러 객체를 모아 놓은 것
  • 컬렉션 클래스 : 다수의 데이터를 저장할 수 있는 클래스 (ArrayList,HashList 등)

컬렉션 프레임워크 핵심 인터페이스 - List, Set, Map

List : 순서O, 중복 O
Set : 순서 X, 중복 X
Map : 순서 X, 중복 O(키는 중복 X,값은 중복 O)

컬렉션 인터페이스 메서드

list 와 set의 공통

  • add() : 추가
  • remove() : 삭제
  • iterator() : 조회

Sequencedcollection

기존 구현체의 공통 메서드를 인터페이스에 정의
순서가 있는

of(),copyOf()

List list = List.of("1","2","3"); // 리스트 생성
List copy = List.copyOf(list); // 복사(읽기전용)
copy.add("4"); // 에러  

copyOf()로 복사한 list는 읽기 전용이라 추가 및 변경이 불가

List copy = new ArrayList(List.copyof(list));
copy.add("4");

추가 및 변경하려면 복사한 list를 새로운 list에 저장하고 추가 및 변경을하면 가능하다.

ArrayList와 Vector

배열 기반의 컬렉션 클래스 Vector는 동기화 O
ArrayList 동기화 X
장점 : 구조 간단, 요소 접근시간 짧음
단점 : 크기변경 x (복사 해서 다른 list에 넣어야함), 비 순차적인 데이터 추가/ 삭제 오래걸림

TDD

Test Driver Develop(테스트 주도 개발)

  • 리팩토링
  • Test 자동화
    => 코드 품질 상승

LinkedList

연결 리스트. 배열의 단점을 보완, 순서가 있음.
불 연속적으로 존재하는 데이터를 연결, 요소의 추가/삭제에 유리

Iterator

컬렉션 조회 방법의 표준화

  • hasNext() : 읽어올 요소가 남았는지 확인
  • next() : 다음 요소를 읽어옴.

ListIerator

양방향 가능
hasNext(),hasPreviouse() 등등

copyOf(),copyOfRange()

  • copyOf(arr,length) :arr 배열의 length만큼 복사
  • copyOfRange(arr,0,4) : arr 배열의 0번부터 3번까지 뒷 숫자 포함 x

asList

배열을 List로 변환하는것

Comparator와 Comparable

객체 정렬에 필요한 메서드 선언(정렬 기준을 제공)

sort(arr) // 기본 정렬 기준 
sort(arr new Descending()); // Descending에 구현된 기준으로 정렬

HashSet TreeSet

순서X,중복 X

  • HashSet : 대용량 데이터 저장/ 탐색 유리(기본느낌)
  • TreeSet : 범위 탐색(search, range)과 정렬에 유리

HashSet add()

기존에 객체가 없을때만 저장하고 true 반환

=> 즉 equals()랑 hashcode() 호출

profile
나만의 기록장

0개의 댓글