자바 컬렉션 프레임워크(List)

웅평·2023년 12월 6일

컬렉션 프레임워크

  • 많은양의 데이터 처리를 위해서는 (배열)을 이용
  • List, Set, Map이 있다

List

  • 데이터의 중복을 허용하며 컬렉션의 종류중에 List를 가장 많이 사용한다.

ArrayList

  • List의 종류가 많이 있지만 배열대신에 ArrayList를 가장 많이 사용한다.
  • 중간에 데이터를 삭제할 경우 그곳을 비워둘 수 없으니 그 뒤에 있는 데이터가 앞으로 자리이동 한다
  • 삭제가 빈번한 경우 부적합
public class _04_ArrayList {
    public static void main(String[] args) {
        // 배열을 만들면 크기가 고정되므로 추가하지 못하고 새로운 배열을 만들어야한다
        int[] arr = new int[3];
        arr[0] = 0;
        arr[2] = 2;
        arr[1] = 1;
        
        // 컬렉션 프레임워크는 정령, 추가, 제거, 탐색등 기능이 있다
        ArrayList<String> list = new ArrayList<>();
        // 데이터 추가
        list.add("유재석");
        list.add("제시");
        list.add("조세호");
        list.add("전소민");
        list.add("양세찬");
    }
}
  • ArrayList list = new ArrayList(); --> 다양한 자료형 담을 수 있음
  • ArrayList<'String'> list = new ArrayList<'String'>(); --> 리스트에 담을 자료형 String으로 제한
  • ArrayList<'Integer'> list = new ArrayList<'Integer'>(); --> 리스트에 담을 자료형을int으로 제한

데이터 조회

        System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.get(2));
        System.out.println(list.get(3));
        System.out.println(list.get(4));

데이터 삭제

System.out.println(list.size()); // 리스트의 길이
list.remove("조세호");
System.out.println(list.size());
System.out.println(list.get(2));

순회

		for (String s : list) {
            System.out.println(s);
        }

데이터 수정

 		System.out.println(list.get(0));
        list.set(0, "이광수");
        System.out.println(list.get(0));

index 확인

System.out.println(list.indexOf("제시"));

포함 여부

        if (list.contains("제시")) {
            System.out.println("있음");
        } else {
            System.out.println("없음");
        }

전체 삭제

list.clear();

비어있는지 확인

        if (list.isEmpty()) {
            System.out.println("비어있음");
        } else {
            System.out.println("비어있지 않음");
        }

정렬

        Collections.sort(list);
        for (String s : list) {
            System.out.println(s);
        }

LinkedList

  • 데이터가 삭제되어도 그 뒤 데이터가 자리이동이 없다
  • 삭제가 빈번한 경우 ArraList보다 효율적이다

LinkedList 생성

LinkedList<String> list = new LinkedList<>();

추가

        list.add("유재석");
        list.add("제시");
        list.add("조세호");
        list.add("김종국");
        list.add("양세찬");

데이터 조회(인텍스)

        System.out.println(list.get(0));
        System.out.println(list.getFirst()); // 처음 데이터
        System.out.println(list.getLast()); // 마지막 데이터

맨 앞에 추가

list.addFirst("송지효");

중간에 값 추가

list.add(1, "지석진");

add(추가할 위치, 값)

삭제

list.remove(1);

처음과 마지막 데이터 삭제

        list.removeFirst();
        list.removeLast();

수정

list.set(0, "주우재");

국비학원에서 배운것과 따로 공부한 것을 정리한 것입니다

참고
나도코딩 유튜브

0개의 댓글