💡List란?
순서가 있는 요소들을 저장할 수 있는 컬렉션이다
동적으로 크기가 조정이 된다.
일반적으로 ArrayList를 주로 사용하며 ArrayList는
순서 존재 (동적 배열)하며, 중복 저장허용한다
ArrayList가 LinkedList보다 속도처리가 빠르다.
import java.util.ArrayList;
import java.util.List;
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list); // 예시 출력: [1, 2, 3]
int element = list.get(0); // 인덱스 0의 요소를 가져옴
System.out.println(element); // 예시 출력: 1
int size = list.size();
System.out.println("List의 크기: " + size);
list.remove(0);
= 0번 인덱스 데이터 삭제
list.clear();
= 저장된 모든 객체 삭제
import java.util.Collections;
Collections.sort(list);
System.out.println("정렬 후 list: " + list);
lterator란?
각 컬렉션(Collection)요소를 순회하고 각 요소에 접근하는데 사용되는 인터페이스이다
List, set, Map등 다양한 컬렉션 타입에서 lterator 사용 가능
단, 한번만 사용가능하니 주의하자 (다시 사용하고 싶다면 새로운 lterator 객체를 생성해야함)
lterator의 주요 메서드
hasNext(); :
다음 요소가 있는지 확인하고 있으면 true를 반환한다
next(); : 다음 요소를 반환한다
remove() : 최근에 반환된 요소를 삭제함
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 10; i <= 100; i += 10) { // i+=10 10씩 증가시키려면
list.add(i);
}
// 반복자 호출 list안에 들어가있는 타입찾아서 비교
Iterator<Integer> itr = list.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
iterator() 메서드를 호출하여 iterator 객체를 생성한 후
while 루프를 사용하여 iterator.hasNext()로 다음 요소의 존재여부를 확인하고
iterator.next()로 요소를 가져와 출력함
HashSet이란?
컬렉션 프레임워크 중 하나로 중복된 요소를 허용하지 않으며 순서가 없다
Set<String> set = new HashSet<>();
set.add("C");
set.add("Spring");
set.add("Java");
set.add("JSP");
set.add("JSP"); // 중복제거
System.out.println( set );
위의 예제를 보면 JSP가 두번 들어갔지만 출력 값은
[Java, C, JSP, Spring]이런 식으로 나오는데 보다시피 순서가 없으며 중복이 자동으로 제거된 상태를 볼 수 있다.
HashMap이란?
해시 테이블을 기반으로 한 key-value 쌍을 저장하는 자료구조이다.
key는 중복될 수 없지만, value는 중복될 수 있고 ,
각 key는 하나의 value와 연결되어 있다.
key를 사용하여 빠르게 요소를 찾거나 수정하고 싶을때, 데이터의 키-값 쌍을 관리하고 싶을때 유용하게 사용할 수 있음.
마찬가지로 순서를 보장하지 않음 (순서를 지키고 싶다면 LinkedHashMap 사용)
HashMap 예제
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
// HashMap 객체 생성
Map<String, Integer> scores = new HashMap<>();
// key-value 쌍 추가
scores.put("Alice", 95);
scores.put("Bob", 80);
scores.put("Charlie", 75);
// key를 사용하여 value 읽기
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore); // 출력: Alice's score: 95
// key로 존재하는지 확인
if (scores.containsKey("Bob")) {
System.out.println("Bob is in the HashMap.");
}
// HashMap의 크기 확인
System.out.println("HashMap size: " + scores.size());
// key로 요소 제거
scores.remove("Charlie");
// 전체 요소 출력 (순서는 보장되지 않음)
System.out.println("HashMap elements: " + scores);
}