우아한테크코스/1주차 프리코스

[Java] 컬렉션 - 리스트(List)

행복한라이언 2023. 10. 20. 18:35
728x90
반응형

1. 공통 메서드

0) 생성

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

    //  ⭐️ 간략한 생성 및 초기화 방법들
    // 💡 Arrays 클래스 : 배열 관련 각종 기능 제공
    List<Integer> ints2A = new ArrayList<>(
            Arrays.asList(1, 2, 3, 4, 5)
    );

    // 💡 자바9에서부터 가능
    List<Integer> ints2B = new ArrayList<>(
            List.of(1, 2, 3, 4, 5)
    );


    List<Integer> ints2C = new ArrayList<>();
    Collections.addAll(ints2C, 1, 2, 3, 4, 5);

 

1) 값 추가: add, addAll

    // ⭐️add 메서드로 요소 추가
    ints.add(11);
    ints.add(22);
    ints.add(33);
    ints.add(44);
    ints.add(55);

    // 현재 컬렉션inst에 컬렉션 C의 모든 데이터를 추가
    ints.addAll(C);

 

2) 값 삭제: remove, removeAll

    // ⭐️요소 지우기
    // 인덱스로 지우기
    ints.remove(4);

    // 클래스형 자료형: 요소로 지우기
    ints.remove((Integer) 55);

    // 컬렉션 ints에서 컬렉션 C와 일치하는 데이터를 삭제
    ints.removeAll(C)

 

3) 포함여부 확인: contains, containsAll

     // 포함 여부 판단
    boolean intsCon3 = ints.contains(33);
    boolean intsCon6 = ints.contains(66);

    // 현재 컬렉션ints에 컬렉션 C의 모든 데이터가 포함 여부 판단
    boolean intsConAll = ints.containsAll(C)

 

4) 요소 개수 확인: size / 빈리스트 확인: isEmpty / 요소 접근: get / 모든 데이터 삭제: clear

    // 요소 개수
    int intsSize = ints.size(); 

    // size가 0인지 여부 반환
    boolean intsIsEmpty = ints.isEmpty(); 

    // 인덱스로 요소 접근
    int intsIndex1 = ints.get(1);

    // 모든 데이터 삭제
    ints.clear();

 

5) 교집합: retainAll

    ArrayList<Integer> ints1 = new ArrayList<>();
    ArrayList<Integer> ints2 = new ArrayList<>();


    // ⭐️add 메서드로 요소 추가
    ints1.add(11);
    ints1.add(22);
    ints1.add(33);
    ints1.add(44);
    ints1.add(55);
    // ⭐️add 메서드로 요소 추가
    ints2.add(22);
    ints2.add(33);
    ints2.add(44);
    ints2.add(55);
    ints2.add(66);

    ints1.retainAll(ints2);
    System.out.println(ints1); // [22, 33, 44, 55]

 

2. LinkedList 메서드

1) 요소 추가: addFirst, addLast

2) 리스트에서 꺼내지 않고 요소 추출: peek, get

3) 리스트에서 꺼내서 요소 추출: poll, remove

        // ⭐LinkedList만 존재하는 메서드
        LinkedList<Integer> intNums = new LinkedList<>();
        for(var intNum : new int[]{2, 3, 4}){
            intNums.add(intNum);
        }
        intNums.addFirst(1);
        intNums.addFirst(0);
        intNums.addLast(5);;
        intNums.addLast(6);

        // ⭐앞에서, 뒤에서 "꺼내지 않고" 반환
        // -peek~ : 비어있을 경우 null 반환
        // - get~ : 비어있을 경우 익셉션
        int peekFirst = intNums.peekFirst();
        int getFirst = intNums.getFirst();
        int peekLast = intNums.peekLast();
        int getLast = intNums.getLast();

        // ⭐앞에서, 뒤에서 "꺼내어" 반환
        // - poll~ : 비어있을 경우 null 반환
        // - remove~ : 비어있을 경우 익센셥
        int polledFirst = intNums.pollFirst();
        int removedSecond = intNums.removeFirst();
        int polledLast = intNums.pollLast();
        int removedLast = intNums.removeLast();

 

출처 및 참고) 제대로 파는 자바(Java) - by 얄코(https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94)

728x90
반응형