자바
:: 여러 데이터를 저장하는 법 - Array, List, Map ::
여러 데이터를 저장할 수 있도록 해주는 기능은 자바에 대표적으로 3가지가 있다.
이번 시간에는 그 3가지의 사용법에 대해 소개하는 시간을 갖도록 하겠다.
1. Array (배열)
배열은 같은 종류의 데이터를 하나의 공간에 저장할 수 있도록 해주는 기능이다.
배열의 크기는 처음 선언 시에 입력하게 되며 .length로 배열의 크기를 확인할 수 있다.
인덱스는 0번부터 시작이다.
ex) new int[10] -> 인덱스 0~9번
:: 선언 ::
위와 같이 자료형[] 로 선언하거나
배열 생성 시에 값을 초기화하면서 생성할 수 있다.
:: 초기화 ::
배열을 초기화할 때는 값을 삽입할 배열의 인덱스를 선택 후 삽입이 가능하다
ex) intArray[0] = 10;
2. List (리스트)
ArrayList는 리스트에서 가장 기본적인 리스트다.
사용하기 위해선 java.util.ArrayList 를 import 해야한다.
:: 초기화 ::
초기화는 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은 선언 시 <key, value>로 값을 넣는다는 특징이 있다.
또한 key,value로 값을 저장하기 때문에 Array, List와는 다르게 LinkedHashMap을 제외하곤 순서가 없는 것이 특징이다.
:: 초기화 ::
초기화는 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
'Language > Java' 카테고리의 다른 글
[Java] - Comparable 인터페이스란? (1) | 2023.01.21 |
---|---|
[JAVA] ObjectMapper를 통한 손쉬운 객체 형식 변환 (2) | 2022.09.17 |
[객체지향] SOLID 원칙이란? (4) | 2022.03.28 |
[JAVA] 자바 JVM, JRE, JDK 차이 (2) | 2022.01.20 |
[Java] 윈도우 설정으로 CSV 파일 ,(콤마) 말고 다른 구분자로 변경하기! (1) | 2021.12.13 |