hayu's 개발 일지

[TIL]240325 ArrayList 본문

기술/java

[TIL]240325 ArrayList

hayu00 2024. 3. 25. 21:04

ArrayList

  • List 인터페이스를 구현한 클래스로 컬렉션 프레임 워크에서 많이 사용된다.
  • 컬렉션 프레임 워크 : 자료 구조 종류의 형태들을 자바 클래스로 구현한 것이다.
  • 객체가 인덱스로 관리된다는 점에서 배열과 유사하다. 그러나 배열은 생성될 때 크기가 고정되어 크키를 변경할 수 없지만, ArrayList는 저장 용량을 초과하여 객체들이 추가되면, 자동으로 저장 용량이 늘어난다. 뿐만 아니라 데이터가 연속적으로 존재하여 데이터의 순서가 유지된다.
// ArrayList<변수 타입> 객체명 = new ArrayList<변수 타입>(초기 저장 용량);
ArrayList<String> arrayList = new ArrayList<String>();
// 초기 저장 용량은 선택 : 기본값은 10이다. 
  • ArrayList에 객체를 추가하면 인덱스 0부터 차례대로 저장된다. 중간에 인덱스의 객체를 제거하면 앞으로 당겨진다.
  • ArrayList에 객체를 순차적으로 저장할 때는 데이터를 이동하지 않아도 되기 때문에 작업 속도가 빠르지만 중간에 위치한 객체를 추가하거나 삭제할 때에는 데이터 이동이 많이 일어나기 때문에 속도가 저하된다. 반면 인덱스가 n인 요소인 데이터에 빠르게 접근이 가능하기 때문에 검색(읽기) 측면에서는 유리하다.
 ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("가");
        arrayList.add("나");
        arrayList.add("다");

        // 저장된 객체 수
        int size = arrayList.size();

        // 0번 인덱스의 객체
        String index = arrayList.get(0);

        // 저장된 총 객체 수 만큼 조회 (for 문 이용)
        for (int i = 0; i < arrayList.size(); i++) {
            String str = arrayList.get(i);
            System.out.println(i + ":" + str);
        }

        // 저장된 총 객체 수 만큼 조회 (for - each 문으로 순회)
        for (String str : arrayList) {
            System.out.println(str);
        }
        
        // ArrayList에 있는 모든 요소를 삭제하려면 clear()을 사용한다.
        arrayList.clear();
ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("가");
        arrayList.add("나");
        arrayList.add("다");

        // iterator 으로 출력
        Iterator<String> iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next() + " ");
        }
        System.out.println();
        System.out.println("---------------------------");

        ArrayList<String> list = new ArrayList<>();
        list.add("가가");
        list.add("나나");
        list.add("다다");

        // iterator 으로 출력
        ListIterator<String> listiterator = list.listIterator();
        while (listiterator.hasNext()) {
            System.out.println(listiterator.next() + " ");
        }
        System.out.println();

        while (listiterator.hasPrevious()) {
            System.out.println(listiterator.previous() + " ");
        }
        
		// 출력
		// 가 
		// 나 
		// 다 

		// ---------------------------
		// 가가 
		// 나나 
		// 다다 

		// 다다 
		// 나나 
		// 가가

 

 

참고 자료

- https://wikidocs.net/207

- https://danmilife.tistory.com/16

- https://cdragon.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8List-ArrayList

- https://pongic.tistory.com/3

'기술 > java' 카테고리의 다른 글

[TIL]240406 Set  (0) 2024.04.06
[TIL]240403 Map  (0) 2024.04.03
[TIL]240323 List  (1) 2024.03.23
[TIL]240228 클래스와 생성자(2)  (0) 2024.02.28
[TIL]240227 클래스와 생성자(1)  (0) 2024.02.27