Java Collection(List, Set, Map)

JWbase·2023년 2월 27일
0

Java

목록 보기
2/3
post-thumbnail

Collection Framework

종류

List 컬렉션

  • 객체를 인덱스로 관리하기 때문에 인덱스로 검색, 삭제 할 수 있는 기능 제공

  • 종류 : ArrayList, Vector, LinkedList

  • ArrayList

    • 가장많이 사용하는 List Collection
    • 길이의 제한 없이 객체를 추가 할 수 있음
    • 객체의 번지를 저장 -> 동일한 객체 중복저장 시 동일한 번지 저장
    • null 저장가능
    	List<E> list = new ArrayList<E>(); // E에 지정된 타입의 객체만 저장
      	List<E> list = new ArrayList<>(); // E에 지정된 타입의 객체만 저장
      	List list = new ArrayList(); // 모든 타입의 객체 저장
    • 객체 추가시 인덱스 0번부터 차례대로 저장
    • 특정 인덱스의 객체 제거시 앞으로 1씩 당겨짐
    • 객체 삭제 및 삽입이 자주 일어나면 비효율
  • Vector

    • ArrayList와 동일한 구조
    • 동기화(Synchronized)된 메소드로 구성 되어 있어 멀티 스레드가 Vector() 메소드 실행X
    • 안전하게 객체 추가 또는 삭제
      	List<E> list = new Vector<E>(); // E에 지정된 타입의 객체만 저장
      	List<E> list = new Vector<>(); // E에 지정된 타입의 객체만 저장
     	List list = new Vector(); // 모든 타입의 객체 저장
  • LinkedList

    • 인접 객체를 체인처럼 연결해서 관리

    • 삽입, 삭제시 앞뒤 링크만 변경하면 되므로 빈번한 삽입이 일어나는 곳에 사용

       	List<E> list = new LinkedList<E>(); // E에 지정된 타입의 객체만 저장
     		List<E> list = new LinkedList<>(); // E에 지정된 타입의 객체만 저장
     		List list = new LinkedList(); // 모든 타입의 객체 저장

Set 컬렉션

  • 저장 순서가 유지 되지 않음

  • 중복 저장 X

  • 하나의 null만 저장 가능

  • 수학의 집합에 비유

  • 종류 : HashSet, TreeSet

  • HashSet

    • 가장 많이 사용 되는 Set 컬렉션
    	Set<E> set = new HashSet<E>(); // E에 지정된 타입의 객체만 저장
      	Set<E> set = new HashSet<>(); // E에 지정된 타입의 객체만 저장
      	Set set = new HashSet(); // 모든 타입의 객체를 저장
    • HashCode() 리턴값이 같고, equals() true 리턴 -> 동일한 객체이므로 중복저장X

Map 컬렉션

  • key와 value로 구성된 Entry객체 저장

  • key는 중복 X, value는 중복 O

  • 종류 : HaspMap, Hashtable, TreeMap, Properties, LinkedHashMap

  • HashMap

    • 키 객체가 HashCode() 메소드의 리턴값이 같고 equals() 메소드가 true면 동일 키로 본다.
    • HashMap 생성 하는방법
    Map<K, V> map = new HashMap<K, V>();
  • Hashtable

    • HaspMap과 동일한 내부
    • 동기화된 메소드로 구성되어 멀티 스레드가 동시에 Hashtable 메소드 실행 X
    • 멀티 스레드 환경에서도 안전하게 추가, 삭제
    Map<String, Integer> map = new Hashtable<>();
  • Properties

    • Hashtable의 자식 클래스로 Hashtable의 특징을 그대로 가지고 있음
    • key, value를 String으로 제한한 컬렉션
    • 주로 .properties인 프로퍼티 파일을 읽을 때 사용
    • 프로퍼티 파일은 key , value가 = 기호로 연결되어 있는 텍스트 파일
    • ISO 8859-1 문자셋, 한글은 \u + 유니코드
    // database.properties 파일
    	dirver=oracle.jdbc.OracleDriver
      	url=jdbc:oracle:thin:@localhost:1521:orcl
      	username=scott
      	password=tiger
        admin=\uD64D\uAE38\u3D9
        
    // Properties 파일 읽는법
    	Properties properties = new Properties();
      	properties.load(Xxx.class.getResourceAsStream("database.properties"));
profile
기억 저장소!!

0개의 댓글