개발로드

★KDT 2024-01-29☆Collections Framework 본문

JAVA

★KDT 2024-01-29☆Collections Framework

위대한개발자 2024. 1. 29. 19:02
< Collections Framework >
 컬렉션 
   객체의 저장
   프레임워크 : 사용 방법을 정해 놓은 라이브러리

 


Collection Framework의 인터페이스
    java.util 패키지 안에 위치



  1. List : 
    1. 순서가 있는 데이터 집합
    2. 데이터 중복 가능
    3. 같은 자료형 저장 가능
    4. 저장 공간 동적으로 처리
    5. 객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스를 이용해서 객체를 추가, 삽입, 삭제를 할 수 있음
    6. ArrayList(단일쓰레드환경) : 삽입/삭제는 LinkedList에 비해 느리나 검색 속도는 빠름(인덱스로 검색하기 때문)
    7. ArrayList(단일쓰레드환경) : 삽입/삭제는 LinkedList에 비해 느리나 검색 속도는 빠름(인덱스로 검색하기 때문)
    8. LinkedList : 삽입/삭제는 ArrayList에 비해 빠르나, 검색 속도는 느림
    9. Stack : Vector 클래스를 상속 받음
    10. Vector(멀티쓰레드 환경에 사용) : ArrayList와 동일한 내부 구조 가짐
               동기화된 메소드로 구성되어 있기 때문에 멀티 쓰레드가 동시에 
               Vector() 메소드를 실행할 수 없음.
               따라서 멀티 쓰레드 환경에서는 안전하게 객체를 추가 또는 삭제할 수 있음
    11.  비교) 배열 - 한 번 저장 공간을 확보하면 다시 변경 불가
                              List - 저장공간이  동적으로 확보
  2. Set : 순서가 없는 데이터 집합
    1. 중복을 허용하지 않음
            HashSet, TreeSet
    2. Map : 키(Key)와 값(value)의 쌍으로 이루어진
            데이터 집합
            순서가 없음
            Key는 중복 허용하지 않음
            value 중복 허용
            HashMap, TreeMap, Hashtable, Properties ..

 List 컬렉션에 사용하는 메소드

 

 
boolean add(E element) 주어진 객체를 맨 끝에 추가
 void add(int index, E element) 주어진 인덱스에 객체를 추가
set(int index, E element) 주어진 인덱스에 저장된 객체를 주어진 객체로 변경
E get(int index) 주어진 인덱스에 저장된 객체를 리턴(반환)
int size() 저장되어 있는 전체 객체 수
      비교) 배열 - 배열명.length,   문자열 - 문자열.length()
boolean isEmpty() 컬렉션이 비어 있는지 조사
void clear() 저장된 모든 객체를 삭제
E remove(int index) 주어진 인덱스에 저장된 객체를 삭제
boolean remove(Object o) 주어진  객체를 삭제

 

★ArrayList☆

-메모리 공간을 동적으로 확보
-배열은 한번 공간을 확모하면 바꿀 수 없다.

☆메소드★
.add(요소) : 주어진 객체를 맨 끝에 추가
.get(int index) : 주어진 인덱스에 저장된 객체를 가져온다.
.size(): 저장되어 있는 전체 객체 수(=배열의 길이)
.remove(int index) : 주어진 인덱스의 객체를 삭제

 


ArrayList 연습예제