개발 공부/JAVA

JCF (Java Collection Framework) 자료구조형 라이브러리 활용

공부하는개발자_ 2023. 6. 1. 16:41

JCF (Jave Collection Framework) 

 

ULM표기법

Interface상위로 class가 올 수는 없다.

Collection(interface) / Map(interface)

list(interface)에서 상속받는 vector(class)와 arraylist(class) 관계 : 점선

상속 표기를 할때 화살촉을 닫아줘야함.

collection framework : 크기 조절 가능 

collection : 값(value)만 저장 
add() : 추가

size() : 저장된 자료의 갯수만 반환
remove(): 자료 삭제

 

List : 배열처럼 인덱스가 제공됨. 중복 데이터 저장 가능. 순차적으로 저장 가능
- list.get(0);

- list.remove(0);

.

get ()

ArrayList : Thread에 동기화 안 되어있음. 추가/수정/삭제 속도 빠름.

Vector : Thread에 동기화 되어있음 (lock). 추가/수정/삭제 속도 느림.

 

Set : 인덱스 제공 안 함. (자료구조로 보기는 힘들다). 중복 저장 불가. 순차 저장 허용안함. 

-Iterator() : 값을 검색할 때

HashSet: Hashcode 값으로 검색

TreeSet: 정렬

 

Map : 키, 값 저장 

빠르게 값을 찾기 위해 key를 같이 저장. key는 유일한 값으로 식별가능해야 하므로 고유해야 한다 (중복x)

인덱스 제공 안 됨. 순차적으로 저장 불가. key를 다시 저장하면 값을 덮어씌워 저장하게 됨.

-put() : 추가할때

-remove(): 자료 삭제

-size() : 자료의 갯수 반환

-get() : Key조회

 

Hashtable :Thread에 동기화 되어있음. 속도 빠름. HashCode key로 검색
HashMap : Thread에 동기화 안 되어있음. 속도 느림. HashCode key로 검색

TreeMap : 정렬

 

 

 

 

 

String 클래스

객체 내용 불변. +연산을 만나면 새로운 메모리가 만들어짐.
메모리 낭비가 심하다

 

String Builder 클래스

객체 하나만 사용. 사용법이 불편 (리터럴 활용X, 결합 연산자 사용불가)

 

StringTokenizer 클래스

문자로 구분. 

 

 

 

 

포장클래스 

박싱은 왜 해야할까? 

java collection framework에서는 자료를 참조형만 관리할 수 있다.

기본형->참조형 (Boxing)

참조형이 필요한 곳에 기본형 대입을 할 수 없으니 박싱을 통해 형변환을 해주는 것임.

o = i;

o = new Integer(i) 

 

참조형->기본형 (Unboxing)

i = o;

obj.intValue( )

 

 

 

어노테이션

@로 작성되는 요소. 컴파일, 실행 타입에 영향을 미치는 주석

 

comment

컴파일, 실행 타입에 영향을 미치지 않는 주석

 

 

롬복

자동 코드 생성 라이브러리.

Getter, Setter, hasCode( ), equals( ), toString( )

'개발 공부 > JAVA' 카테고리의 다른 글

thread  (2) 2023.06.09
입출력 (InputStream/Reader), file 라이브러리  (2) 2023.06.08
java 예외  (0) 2023.05.31
java 추상 클래스 / 인터페이스/ 중첩클래스  (0) 2023.05.31
상속 (형변환/다형성/overriding)  (0) 2023.05.30