728x90
  • HashMap
  • TreeMap
  • LinkedHashMap (순서가 필요한 경우 사용하는 HashMap)
  • SortedMap
  • Hashtable

메소드

clear()

Map의 모든 객체 삭제

containsKey(key), containsValue(value)

지정 객체의 키나 값과 일치하는 Map의 키나 값이 있는지 확인

entrySet()

Map에 저장된 키-값의 쌍을 Map.Entry 타입의 객체로 저장한 Set으로 반환

get(key)

지정 객체의 키에 대응하는 값 객체를 찾아서 반환

put(key, value)

Map에 값 객체를 키 객체에 연결하여 저장

putAll(Map)

지정된 Map의 모든 키-값 쌍을 추가

remove(key)

지정한 키 객체와 일치하는 키-값 객체를 삭제

size()

Map에 저장된 키-값 쌍의 개수를 반환

values()

Map에 저장된 모든 값 객체를 반환

 

용어

key : 중복이 없는 값

value : 중복이 허용되는 값

entry : key - value 한 쌍을 의미

'Java > Notion' 카테고리의 다른 글

List - LinkedList  (0) 2023.04.30
List - ArrayList  (0) 2023.04.30
컬렉션 프레임워크 - Set  (0) 2023.04.30
컬렉션 프레임워크 - List  (0) 2023.04.30
컬렉션 프레임워크  (0) 2023.04.30
728x90
  • HashSet
  • TreeSet
  • SortedSet

메소드

컬렉션 인터페이스의 메소드와 동일함

Set(집합)과 관련된 메소드는 컬렉션에 변화가 있으면 true, 없으면 false를 반환

  • addAll - 합집합 : 지정 컬렉션의 객체들을 컬렉션에 추가
  • containsAll - 부분집합 : 지정 컬렉션의 객체들이 컬렉션에 포함된지 확인
  • removeAll - 차집합 : 지정 컬렉션의 객체들을 삭제
  • retainAll - 교집합 : 지정 컬렉션의 객체만 남기고 나머지를 삭제

'Java > Notion' 카테고리의 다른 글

List - ArrayList  (0) 2023.04.30
컬렉션 프레임워크 - Map  (0) 2023.04.30
컬렉션 프레임워크 - List  (0) 2023.04.30
컬렉션 프레임워크  (0) 2023.04.30
형식화 클래스  (0) 2023.04.30
728x90
  • Vector
  • ArrayList
  • LinkedList
  • Stack

메소드

컬렉션 인터페이스가 가지고 있는 메소드도 상속 받기 때문에 사용가능

add(index, element), addAll(index, collection), remove(index)

지정 인덱스에 객체나 객체들을 추가 혹은 삭제(삭제 객체 반환)

get(index), set(index, element)

지정 인덱스의 객체를 반환하거나 저장

indexOf(object), lastIndexOf(object)

지정된 객체의 위치를 첫번째 요소부터 찾거나 마지막 요소부터 찾아서 인덱스를 반환

sort(Comparator)

지정 비교자로 List를 정렬

subList(시작인덱스, 끝인덱스)

시작 인덱스 부터 끝 인덱스 전까지에 있는 객체를 반환

'Java > Notion' 카테고리의 다른 글

컬렉션 프레임워크 - Map  (0) 2023.04.30
컬렉션 프레임워크 - Set  (0) 2023.04.30
컬렉션 프레임워크  (0) 2023.04.30
형식화 클래스  (0) 2023.04.30
Date / Calendar / time  (0) 2023.04.30
728x90

용어

컬렉션 : 여러 객체를 모아 놓은 것

프레임워크 : 표준화, 정형화된 체계적인 프로그래밍 방식으로 생산성과 유지보수에 도움을 줌

컬렉션 프레임워크 : 컬렉션을 다루기 위한 표준화된 프로그래밍 방식으로 컬렉션을 쉽고 편리하게 다룰 수 있는

다양한 클래스(저장, 삭제, 검색, 정렬 등) 제공

컬렉션 프레임워크 핵심 인터페이스

List

순서가 있는 데이터의 집합

데이터 중복 허용

ArrayList, LinkedList, Stack, Vector, ...

 

대기자 명단 같은 경우에 사용

Set

순서를 유지하지 않는 데이터의 집합

데이터 중복 허용 안함

HashSet, TreeSet, ...

 

양의 정수 집합이나 소수의 집합 같은 경우에 사용

Map

한 쌍(키와 값)으로 이루어진 데이터의 집합

순서는 유지되지 않음

키는 중복 허용하지 않음

값은 중복 허용

HashMap, TreeMap, Hashtable, Properties, ...

 

아이디(키)와 패스워드(값) 같은 경우에 사용

 

컬렉션 인터페이스의 메소드

add(Object o), addAll(Collection c)

지정된 객체나 객체들을 컬렉션에 추가

clear()

컬렉션의 모든 객체를 삭제

contains(Object o), containsAll(Collection c)

지정된 객체 또는 객체들이 컬렉션에 포함되어 있는지 확인

isEmpty()

컬렉션이 비어있는지 확인

iterator()

컬렉션의 이터레이터를 얻어서 반환

remove(Object o), removeAll(Collection c)

지정된 객체나 객체들을 삭제

retainAll(Collection c)

지정된 컬렉션에 포함된 객체만을 남기고 다른 객체들을 컬렉션에서 삭제한 후에

컬렉션에 변화가 있다면 true, 없다면 false를 반환

size()

컬렉션에 저장된 객체의 개수를 반환

Object[] toArray()

컬렉션에 저장된 객체를 객체배열로 반환

Object[] toArray() (Object[ ] a)

지정된 배열에 컬렉션의 객체를 저장 후에 반환

'Java > Notion' 카테고리의 다른 글

컬렉션 프레임워크 - Set  (0) 2023.04.30
컬렉션 프레임워크 - List  (0) 2023.04.30
형식화 클래스  (0) 2023.04.30
Date / Calendar / time  (0) 2023.04.30
Number / Wrapper 클래스  (0) 2023.04.30
728x90

java.text 패키지에 있는 DecimalForamt / SimpleDateFormat 클래스

DecimalFormat

숫자를 형식화할 때 사용

숫자 → 형식 문자열  // 형식 문자열   숫자

// 숫자와 날짜를 원하는 형식으로 쉽게 출력 가능 (DecimalFormat.format)
double number = 1234567.89;
// DecimalFormat의 생성자의 매개변수에 원하는 형식을 작성
DecimalFormat df = new DecimalFormat("#.#E0");// E는 지수형식
// 적용할 숫자나 날짜를 가지고 있는 변수를
// DecimalFormat의 format 메소드를 사용하여 문자열에 저장
String result = df.format(number); // "1.2E6"라는 스트링으로 저장


// 형식 문자열에서 숫자와 날짜를 뽑아내는 기능 (DecimalFormat.parse)
DecimalFormat df = new DecimalFormat("#,###.##");
Number num = de.parse("1,234,567.89"); // 문자열에서
double d = num.doubleValue(); // 1234567.89라는 더블형 값으로 값을 뽑아냄

SimpleDateFormat

날짜와 시간을 다양한 형식으로 출력할 때 사용

// 기호
// 날짜
G 연대
y 연도
M 월
w 년의 몇 번째 주 (1~53)
W 월의 몇 번째 주 (1~5)
D 년의 몇 번째 일
d 월의 몇 번째 일
F 월의 몇 번째 요일
E 요일

// 시간
a 오전/오후
H 시간(0~23)
k 시간(1~24)
K 시간(0~110
h 시간(1~12)
m 분
s 초
S 천분의 일초
z 일반적인 시간대 기준
Z RFC 822 시간대 기준
' escape문자(특수문자 표현이 필요할 때 사용)

// 날짜 형식 지정
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 년-월-일
String result = sdf.format(today); // 형식 적용

// 지정 형식으로 값을 뽑아내기
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse("2023년 04월 30일"); // 문자열을 Date타입으로 변환

'Java > Notion' 카테고리의 다른 글

컬렉션 프레임워크 - List  (0) 2023.04.30
컬렉션 프레임워크  (0) 2023.04.30
Date / Calendar / time  (0) 2023.04.30
Number / Wrapper 클래스  (0) 2023.04.30
Object 클래스  (0) 2023.04.30
728x90

Date / Calendar 클래스

날짜와 시간을 다루기 위한 목적으로 만들어진 클래스 ( java.util.Date / java.util.Calendar )

time 패키지

기존의 Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공하는 패키지 ( java.time )

 

Calendar 클래스

추상 클래스라서 getInstance 메소드를 통해 구현된 객체를 얻어야 함

// 추상 클래스라 인스턴스 생성 불가
Calendar cal = new Calendar(); // 오류

// getInstance() 메소드를 활용하여 가져와야 함
Calendar cal = Calendar.getInstance(); // 현재 날짜와 시간으로 셋팅

// Calendar 클래스에 정의된 필드
// 날짜 
YEAR 년
MONTH 월(0부터 시작하기 때문에 +1 해줘야 함)
WEEK_OF_YEAR 현재 연도 기준으로 현재가 몇 번째 주인지
WEEK_OF_MONTH 현재 월의 기준으로 현재가 몇 번째 주인지
DATE 일
DAY_OF_MONTH 현재 월의 몇 번째 일인지
DAY_OF_YEAR 현재 연도 기준으로 현재가 몇번째 일인지
DAY_OF_WEEK 현재 주 기준으로 현재가 몇번째 일인지 (1 ~ 7까지 있고 일월화수목금토 순서)
DAY_OF_WEEK_IN_MONTH 

// 시간
HOUR (0 ~ 11)
HOUR_OF_DAY (0 ~ 23)
MINUTE 분
SECOND 초
MILLISECOND 천분의 일초
ZONE_OFFSET GMT 기준 시차
AM+PM 오전/오후

// get()
int year = cal.get(Calendar.YEAR); // 현재가 몇년인지를 얻어 옴
int lastDay = cal.getActualMaximum(Calendar.DATE); // 현재 달의 마지막 날을 얻어 옴

'Java > Notion' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2023.04.30
형식화 클래스  (0) 2023.04.30
Number / Wrapper 클래스  (0) 2023.04.30
Object 클래스  (0) 2023.04.30
예외  (0) 2023.04.29
728x90

Number 클래스

모든 숫자 Wrapper 클래스의 조상

Wrapper 클래스

기본형값을 감싸는 클래스로 8개의 기본형을 객체로 다뤄야할 때 사용

Boolean boolean
Character char
Byte byte
Short short
Integer int
Long long
Float float
Double double

메소드

parse기본형() : Wrapper 클래스의 객체를 기본형으로 바꿈

valueOf() : parse와 마찬가지로 Wrapper 클래스의 객체를 기본형으로 바꿈

오토박싱

기본형을 Wrapper 클래스의 객체로 자동으로 변환해줌 ( int 타입을 Integer 객체에 넣는 경우 )

언박싱

Wrapper 클래스의 객체를 기본형으로 자동으로 변환해줌 ( Integer 객체의 값을 int 타입에 넣는 경우 )

'Java > Notion' 카테고리의 다른 글

형식화 클래스  (0) 2023.04.30
Date / Calendar / time  (0) 2023.04.30
Object 클래스  (0) 2023.04.30
예외  (0) 2023.04.29
내부 클래스  (0) 2023.04.25
728x90

모든 클래스의 최고 조상으로 어떤 클래스를 만들든 Object 클래스를 상속 받아 11개의 메소드를 사용가능

protected clone()

객체 자신의 복사본을 반환

protected로 접근제어자가 지정되어 있기 때문에 오버라이딩하여 public으로 지정해서 사용해야 함

equals(비교할객체)

객체 자신(this)과 비교할 객체가 같은 객체인지 주소(참조변수)를 비교 하여 boolean 값을 반환

오버라이딩 하여 주소가 아닌 다른 값을 비교하는 메소드로도 사용가능

protected finalize()

객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출되는 메소드로 이때 수행되어야 하는 코드가 있을 경우에는

추가적으로 오버라이딩 해서 사용하지만 거의 사용하지 않는 메소드

protected로 접근제어자가 지정되어 있기 때문에 오버라이딩하여 public으로 지정해서 사용해야 함

getClass()

객체 자신의 클래스 정보(변수, 메소드, 생성자 등에 대한)를 담고 있는 Class 인스턴스를 반환

hashCode()

객체 자신의 해시코드를 반환

Object 클래스의 오버라이딩 전 hashCode 메소드는 객체의 주소를 int형으로 변환해서 반환

toString()

객체 자신의 정보를 문자열로 반환

notify()

객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨움

notifyAll()

객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨움

wait() / wait(long timeout) / wait(int nanos)

다른 쓰레드가 notify / notifyAll을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간동안 기다리게 함

 

 

기타

native 메소드

운영체제가 기본적으로 가지고 있는 메소드 ( hashCode 메소드가 여기에 속함 )

Object 클래스의 메소드 오버라이딩시 주의할 점

기본적으로 주소를 가지고 작업하던 equals 메소드를 오버라이딩 하면 hashCode도 똑같이 오버라이딩 해줘야 함

equals 메소드의 결과가 참인 두 객체의 해시코드는 같아야하기 때문

'Java > Notion' 카테고리의 다른 글

Date / Calendar / time  (0) 2023.04.30
Number / Wrapper 클래스  (0) 2023.04.30
예외  (0) 2023.04.29
내부 클래스  (0) 2023.04.25
인터페이스  (0) 2023.04.25

+ Recent posts