본문 바로가기
개발공부 개발새발/JAVA

JAVA) 자바의 정석 기초편 : ArrayList 예제

by 휴일이 2022. 10. 21.

컬렉션 프레임웍 중에

Collection 인터페이스에 속하는 ArrayList

중복 O 순서 O

 

 

package JavaChapter11;

import java.util.ArrayList;
import java.util.Collections;

public class Ex11_1 {
    public static void main(String[] args) {

        ArrayList list1 = new ArrayList(10);
        list1.add(new Integer(5));
        list1.add(new Integer(4));
        list1.add(new Integer(2));
        list1.add(new Integer(0));
        list1.add(new Integer(1));
        list1.add(new Integer(3));

        ArrayList list2 = new ArrayList(list1.subList(1,4)); //list1의 인덱스1~3까지 반환 : 4,2,0
        print(list1, list2);

        Collections.sort(list1); //Collections.sort란?
        Collections.sort(list2); //list를 기본정렬 시켜준다

        System.out.println("list1.containsAll(list2):"
        +list1.contains(list2)); //list1의 모든 요소를 list2가 가지고 있나요? : false

        list2.add("B");
        list2.add("C");
        list2.add(3,"A"); //list2[3]에 "A"넣고, 다른 객체는 한칸씩 뒤로 밀림
        print(list1, list2); //list2:4, 2, 0, A, B, C

        // set(변경)
        list2.set(3, "AA"); //list2[3]을 "AA"로 변경(안밀림)
        print(list1, list2); //list2:4, 2, 0, AA, B, C

        //list1에서 list2와 겹치는 부분 빼고 삭제
        //list1에서 list2와의 교집합 빼고 삭제
        System.out.println("list1.retainAll(list2):"+list1.retainAll(list2));
        print(list1,list2); //list1:4,2,0

        //list2에서 list1에 포함된 객체 삭제(교집합을 삭제)
        for(int i=list2.size()-1; i>=0 ;i--) {
            if(list1.contains(list2.get(i))) //contains :오른쪽(list2)이 왼쪽(list1)에 포함 되어 있나요?
                list2.remove(i); //포함 되어 있으면 list2 객체 삭제
        }

        print(list1, list2);

    }


    static void print(ArrayList list1, ArrayList list2) { //간편하게 리스트를 출력해주는 메소드
        System.out.println("list1:"+list1);
        System.out.println("list2:"+list2);
        System.out.println();
    }
}

 

 

결과

 

 

 

 

예제에 쓰인 메서드들

 

list.add() 추가

list.remove() 삭제

list.set() 변경

list.get(i) i번째 객체 가져오기

list.size() 객체 몇개가 들어있나요?

list1.contains(list2.get(i)) // 객체 하나씩 검색(list1에 list2.get(i)가 포함되어 있나요?) <<<비추

list1.containsAll(list2) // 한꺼번에 검색 (list1에 list2가 포함되어 있나요? 교집합이있나요)

list2 = list1.subList(from,to) // list2에 list1의 객체 from에서 to 전까지 추가

list1.retainAll(list2) // 

Collections.sort(list) //리스트 기본 정렬

728x90