728x90
반응형
SMALL

코딩을 하다가 객체를 저장하고 필요 시에 꺼내쓰는 경우가 많음

가장 간단한 케이스는 [ ] 배열임

 

배열 선언 방법

데이터 타입[] = new 데이터 타입[배열의 길이]

int[] int_array = new int [10];

 

배열은 우리가 들어갈 개수를 알고 있을 때 사용이 편함, 모르면 불가

그렇다고 배열을 1000개씩 만들면 공간의 낭비가 발생

배열에서 데이터를 삭제하면 그 공간은 빈 자리가 됨

 

배열의 문제점 + 알려진 자료구조로 데이터를 추가, 삭제, 검색이 가능하도록

java .util 패키지에 여러 가지 인터페이스와 클래스를 추가 => 컬렉션 프레임워크라고 부름

 

(1) 컬렉션 프레임워크의 대분류

리스트(List), 셋(Ser), 맵(Map)

 

(2) 리스트(List)

객체를 일렬로 늘어놓은 구조

객체를 인덱스로 관리

객체를 저장하면 인덱스는 자동 생성

인덱스로 객체를 검색, 삭제 기능 보유

Array List, Vector, LinkedList

주요 메서드) add( ), set( ), contain( ) get( ) size( ) clear( ) remove( )

 

  1) ArrayList

    ArrayList al = new ArrayList() => 기본으로 10개의 저장소 생성

 

  2) LinkList

   인접 참조를 링크해서 체인처럼 관리

 

*끝에 데이터를 추가하는 경우 ArrayList가 속도가 빠름

*중간에 데이터를 추가하는 경우 LinkList가 속도가 빠름

 

*Iterator

컬렉션 프레임워크 객체에 저장된 데이터에 접근할 수 있는 인터페이스

모든 컬렉션은 iterator로 변환 가능

hasNext() : 다음 데이터가 있는지 체크

next() : 다음 데이터 읽기

remove() : 삭제하기

 

*ListIterator

Iterator 인터페이스를 상속

hasPrevious() : 이전 데이터가 있는지 체크

set() : 데이터 교체

previousIndex() : 이전 데이터의 인덱스

nextIndex() : 다음 데이터의 인덱스

 

(3) Set 컬렉션

  • 중복을 허용하지 않음
  • 저장 순서가 유지되지 않음
  • 대표적인 클래스는 HashSet

(4) Map 컬렉션

  • 키(key)와 값(value)로 구성된 Entry 객체를 저장하는 구조 : key-value store키는 중복 저장이 안됨
  • {name{:{Lee}, {age}:{100}
  • 대표적인 클래스는 HashMap
  • KeySet(), entrySet(), put(), get()

 

728x90
반응형
LIST

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

스트림(Stream)  (0) 2023.01.09
스레드(Thread)  (0) 2023.01.09
기본 클래스(String 외)  (0) 2023.01.09
예외(Exception) 처리  (0) 2023.01.09
인터페이스(Interface)  (0) 2023.01.09

+ Recent posts