Java 컬렉션(Collection)

jooog·2021년 9월 30일
0

자바 컬렉션 프레임워크(Collection Framework)

프레임워크란 무엇일까?

프레임워크란 클래스와 인터페이스의 모음이다

그렇다면 컬렉션이란?

객체(데이터)를 수집해서 저장한 것을 말한다

즉, 컬렉션 프레임워크를 사용하는 이유는 객체들을 효율적으로 추가, 삭제, 검색할 수 있어 배열을 효율적으로 관리하기 위해서다

주요 인터페이스

List: 순서가 있으며 배열과 유사하게 인덱스로 객체를 저장 및 관리한다. 중복을 허용한다.

Set: 순서가 없는 데이터의 집합이며 중복을 허용하지 않는다.

Map: 키-값의 쌍으로 이루어진 데이터의 집합이다. 키는 중복이 허용되지 않지만 값은 중복을 허용한다.

List 인터페이스

List 인터페이스를 구현한 클래스로는 ArrayListLinkedList, Vector가 있다

List에는 고유한 index가 있는 저장공간이 있으며 데이터가 순차적으로 들어와서 순서가 정해진다.

import java.util.ArrayList;

//ArrayList pakage를 import 한다

ArrayList<String> list = new ArrayList<String>();
//제네릭을 사용해 String 타입으로 변환

   list.add("one");
   list.add("two");
   list.add("three");
   list.size();
   //ArrayList안에 몇개의 값이 있는지 확인
   list.get(2);
   //index 2번째 값 가져오기

위의 코드에서 ArrayList의 간단한 사용법을 확인할 수 있다.

Set 인터페이스

Set 인터페이스를 구현한 클래스로는 HashSetTreeSet이 있다

데이터가 순서와 상관없이 들어오며 중복되지 않는다.

import java.util.HashSet;

HashSet<Integer> A = new HashSet()<Integer>;
   A.add(1);
   A.add(2);
   A.add(3);

위의 코드로 HashSet을 살펴보면 ArrayList와 비슷한 것을 볼 수 있다.

하지만 중복 값을 저장할 수 없다는 점에서 List와 다르다.

Set을 자세히 알아보자

HashSet<Integer> A = new HashSet()<Integer>;
   A.add(1);
   A.add(2);
   A.add(3);
   
HashSet<Integer> B = new HashSet()<Integer>;
   B.add(3);
   B.add(4);
   B.add(5);
   
HashSet<Integer> C = new HashSet()<Integer>;
   C.add(1);
   C.add(2);

Integer 타입의 값을 각 HashSet A,B,C에 추가했다.
HashSet에 추가한 값들을 보면 중복되는 값이 없음을 확인할 수 있다.
List와 달리 중복이 허용되지 않는 고유한 값만을 추가할 수 있기 때문이다.

Map 인터페이스

Map 인터페이스를 구현한 클래스로는 HashMapSortedMap이 있다

추가된 데이터는 key, value로 구분된다. 예를들어 "age"이라는 키 값은 10이라는 value와 연결된다.

중요한것은 key 값은 중복될 수 없지만 value는 중복 데이터가 허용된다는 점이다.

HashMap<String, Integer> a = new HashMap<String, Integer>();
      a.put("one", 1);
      a.put("two", 2);
      a.put("three", 3);
      a.put("four", 4);

      System.out.println(a.get("one"));
      System.out.println(a.get("two"));
      System.out.println(a.get("three"));
      System.out.println(a.get("four"));
HashMap<String, Integer> a = new HashMap<String, Integer>();

<String, Integer> 제네릭으로 keyvalue의 타입을 지정한다

a.put("four", 4);

put 메소드는 Map에서만 사용된다.

0개의 댓글