JAVA/JAVA 기초 문법
[java] 배열 ArrayList, hashMap 설명
코끼리똥11
2024. 6. 4. 11:49
ArrayList
ArrayList는 자바에서 제공하는 동적 배열(Dynamic Array) 클래스입니다. 이 클래스는 배열처럼 연속된 메모리 공간에 요소를 저장하며, 필요에 따라 크기를 동적으로 조절할 수 있습니다. ArrayList는 java.util 패키지에 포함되어 있습니다.
주요 특징
- 동적 크기 조절: 요소를 추가하거나 제거할 때 자동으로 크기를 조절합니다.
- 인덱스 기반 접근: 배열처럼 인덱스를 사용하여 요소에 빠르게 접근할 수 있습니다.
- 배열과 유사한 동작: 내부적으로 배열을 사용하여 요소를 저장하며, 요소를 순서대로 저장합니다.
- 제네릭 지원: 제네릭을 사용하여 다양한 데이터 타입의 요소를 저장할 수 있습니다.
- 성능: 요소의 추가나 삭제가 배열의 크기를 조절하므로, 중간 삽입/삭제는 비효율적일 수 있습니다.
주요 메서드
- add(E e): 리스트의 끝에 요소를 추가합니다.
- add(int index, E element): 지정된 인덱스에 요소를 삽입합니다.
- get(int index): 지정된 인덱스의 요소를 반환합니다.
- remove(int index): 지정된 인덱스의 요소를 제거합니다.
- size(): 리스트의 요소 개수를 반환합니다.
- isEmpty(): 리스트가 비어 있는지 확인합니다.
- clear(): 리스트의 모든 요소를 제거합니다.
- contains(Object o): 리스트에 특정 요소가 포함되어 있는지 확인합니다.
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// ArrayList 생성
ArrayList<String> list = new ArrayList<>();
// 요소 추가
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// 특정 위치에 요소 추가
list.add(1, "Blueberry");
// 요소 출력
System.out.println("List: " + list);
// 요소 접근
System.out.println("Element at index 2: " + list.get(2));
// 요소 제거
list.remove(3);
// 리스트 크기
System.out.println("Size: " + list.size());
// 리스트가 비어있는지 확인
System.out.println("Is list empty? " + list.isEmpty());
// 리스트 초기화
list.clear();
System.out.println("Cleared list: " + list);
}
}
// 출력결과
List: [Apple, Blueberry, Banana, Cherry]
Element at index 2: Banana
Size: 3
Is list empty? false
Cleared list: []
hashMap
HashMap은 자바에서 제공하는 해시 테이블을 기반으로 한 맵(Map) 인터페이스의 구현체 중 하나입니다. 해시맵은 키-값(key-value) 쌍을 저장하며, 키는 중복될 수 없고, 각 키는 하나의 값과 연관됩니다. 해시맵은 내부적으로 해시 함수를 사용하여 키를 해시값으로 변환하고, 이 해시값을 사용하여 데이터를 저장하고 검색합니다.
주요 특징
- 고속 검색 및 삽입: 해시맵은 해시 함수를 사용하여 데이터를 저장하고 검색하기 때문에 매우 빠른 검색 및 삽입 성능을 제공합니다.
- 중복된 키 허용 안 함: 각 키는 유일해야 하며, 중복된 키를 허용하지 않습니다.
- Null 키와 Null 값 허용: 해시맵은 하나의 null 키를 허용하며, 여러 개의 null 값을 저장할 수 있습니다.
- 순서 보장 안 함: 해시맵은 순서를 보장하지 않습니다. 즉, 키-값 쌍의 순서는 항상 일정하지 않습니다.
주요 메서드
- put(K key, V value): 지정된 키와 값으로 맵에 새로운 항목을 추가합니다.
- get(Object key): 지정된 키에 해당하는 값이 있는 경우 해당 값을 반환합니다.
- containsKey(Object key): 맵에 지정된 키가 있는지 확인합니다.
- containsValue(Object value): 맵에 지정된 값이 있는지 확인합니다.
- remove(Object key): 맵에서 지정된 키와 연관된 값을 제거합니다.
- keySet(): 맵의 모든 키를 Set으로 반환합니다.
- values(): 맵의 모든 값을 Collection으로 반환합니다.
- entrySet(): 맵의 모든 키-값 쌍을 Set으로 반환합니다.
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
// HashMap 생성
HashMap<String, Integer> scores = new HashMap<>();
// 값 추가
scores.put("Alice", 95);
scores.put("Bob", 85);
scores.put("Charlie", 90);
// 값 검색
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
// 값 변경
scores.put("Bob", 88);
int bobScore = scores.get("Bob");
System.out.println("Bob's updated score: " + bobScore);
// 값 제거
scores.remove("Charlie");
// 모든 키-값 쌍 출력
for (String name : scores.keySet()) {
int score = scores.get(name);
System.out.println(name + "'s score: " + score);
}
}
}
// 출력값
Alice's score: 95
Bob's updated score: 88
Alice's score: 95
Bob's score: 88