[Java] 여러 데이터를 저장하는 법 - Array, List, Map

 

자바

:: 여러 데이터를 저장하는 법 - Array, List, Map ::


 

여러 데이터를 저장할 수 있도록 해주는 기능은 자바에 대표적으로 3가지가 있다.

 

이번 시간에는 그 3가지의 사용법에 대해 소개하는 시간을 갖도록 하겠다.

 

 

 


1. Array (배열)

 

배열은 같은 종류의 데이터를 하나의 공간에 저장할 수 있도록 해주는 기능이다.

배열의 크기는 처음 선언 시에 입력하게 되며 .length로 배열의 크기를 확인할 수 있다.

 

인덱스는 0번부터 시작이다.

ex) new int[10] -> 인덱스 0~9번

 

 

 

:: 선언 ::

배열(Array) 선언1
배열(Array) 선언2

위와 같이 자료형[] 로 선언하거나

배열 생성 시에 값을 초기화하면서 생성할 수 있다.

 

 

 

:: 초기화 ::

배열(Array) 초기화

 

배열을 초기화할 때는 값을 삽입할 배열의 인덱스를 선택 후 삽입이 가능하다

ex) intArray[0]  = 10;

 

 

 

 


2. List (리스트)

 

List 메서드 정렬

 

ArrayList는 리스트에서 가장 기본적인 리스트다.

 

사용하기 위해선 java.util.ArrayList 를 import 해야한다.

 

 

 

:: 초기화 ::

List 초기화

 

초기화는 ArrayList<자료형> 리스트명 = new ArrayList<>(); 로 할 수 있다.

 

 

 

:: 메서드 ::

 

값 추가
intList.add(15);

해당 인덱스에 있는 값을 가져옴(인덱스는 0번부터 시작)
intList.get(0); // 15

ArrayList에 저장된 데이터 갯수를 리턴
intList.size(); // 1

리스트 안에 해당 값이 존재하는지 bool값으로 반환
intList.contains(14); // false

리스트에서 인덱스에 해당하는 항목을 삭제하고 삭제된 항목을 리턴
intList.remove(0); // 15

리스트에서 객체에 해당되는 항목 삭제하고 삭제 여부를 bool값으로 반환
intList.remove(14); // false

 

 

 


3. Map (맵)

 

Map 메서드 정렬

 

Map은 선언 시 <key, value>로 값을 넣는다는 특징이 있다.

 

또한 key,value로 값을 저장하기 때문에 Array, List와는 다르게 LinkedHashMap을 제외하곤 순서가 없는 것이 특징이다.

 

 

 

:: 초기화 ::

Map 초기화

초기화는 Map<Key,Value> Map이름 = new Map타입<>(); 로 할 수 있다.

 

 

Map타입은 여러 종류가 있는데 종류별 특징은 아래와 같다.

 


HashMap

- Map 안에서 key/value에 따른 순서 없음

 

TreeMap

- key 값에 따라 오름차순 정렬,

정렬 때문에 대량의 데이터 삽입/삭제시 오래 걸림

 

LinkedHashMap

- 삽입 순서에 따라 정렬

- 순서가 필요한 경우 사용

 

HashTable

- key/value에 null을 넣을 수 없음,

동기화(synchronized) 되어있음


 

 

:: 메서드 ::

 

Map에 값 삽입
map.put("A", 1);
map.put("B", 2);

 

동일한 Key에 다른 값을 넣을 경우 최근에 넣은 값을 적용, A = 3
map.put("A", 3); 

Key를 이용해 Value 리턴
System.out.println(map.get("A"));

Map의 크기 리턴 
System.out.println(map.size()); 

해당 Key의 Value 변경
map.replace("B", 10);
System.out.println(map.get("B")); //10

Map에 해당 Key가 있는지 확인하여 bool값 리턴
System.out.println(map.containsKey("C")); //false 

Map에 해당 Value가 있는지 확인하여 bool값 리턴
System.out.println(map.containsValue(10)); //true

Map이 비어있는지 확인하여 bool값 리턴
    System.out.println(map.isEmpty()); //false
    
    Key에 해당하는 값 삭제
    map.remove("A");
    

Key가 있으면 Value 없으면 default
    System.out.println(map.getOrDefault("Ahri", 6300)); //default = 6300

해당 Key가 없거나 Value가 null일 때만 삽입
map.putIfAbsent("New", 1111); //Key 중에 New가 없기 때문에 작동O
map.putIfAbsent("B", 1111); //Key 중에 B가 이미 있기 떄문에 작동X

 

728x90