비전공자들을 위한 컬렉션 개념잡기

WON HOYEON·2024년 7월 8일

💡List란?

순서가 있는 요소들을 저장할 수 있는 컬렉션이다
동적으로 크기가 조정이 된다.

일반적으로 ArrayList를 주로 사용하며 ArrayList는
순서 존재 (동적 배열)하며, 중복 저장허용한다

ArrayList가 LinkedList보다 속도처리가 빠르다.

[1] List 객체 생성

import java.util.ArrayList;
import java.util.List;

List<Integer> list = new ArrayList<>();

[2] List 요소 추가하기

list.add(1);
list.add(2);
list.add(3);

[3] List 배열 전체 내용 확인하기

System.out.println(list); // 예시 출력: [1, 2, 3]

[4] List 저장된 요소 가져오기 - get(index)

int element = list.get(0); // 인덱스 0의 요소를 가져옴
System.out.println(element); // 예시 출력: 1

[5] List 크기 가져오기 size() => lenth와 같은 역활

int size = list.size();
System.out.println("List의 크기: " + size);

[6] List 삭제하는 법 remove (index) , clear(0)

list.remove(0); 
= 0번 인덱스 데이터 삭제 
                                 
list.clear();
= 저장된 모든 객체 삭제       

[6] List 정렬하기

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);
}
  • HashMap 객체 생성하고, key를 문자열, value로 정수를 사용함.
  • put() 메서드는 key-value 쌍을 추가함
  • get() 메서드로 key를 사용하여 value를 읽어옴
  • containsKey 메서드로 key의 존재 여부를 확인 가능
profile
分からなかったことを整理し、後から見返すための記録です。

0개의 댓글