판봉 개발 일기

ArrayList 본문

자바 복습

ArrayList

판봉 2021. 7. 12. 21:11
728x90

ArrayList는 List 인터페이스의 대표적인 구현 클래스이다.

밑은 ArrayList 객체를 생성하는 방법이다.

더보기

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

ArrayList를 생성하려면 저장할 객체타입을 표기하고 기본 생성자를 호출하면 된다.

 

더보기

ex)String을 저장하는 ArrayList 생성

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

List<String> list = new ArrayList();

항상 ();찍는 것을 주의하자.

그리고 두번째 코드는 왼쪽에 지정된 타입을 따라간다.

결론적으로 위 두코드는 동일하다.


기본 생성자로 ArrayList 객체를 생성하면 내부에 10개의 객체를 저장할 수 있는 용량이 생긴다.

저장할 객체 수가 늘어나면 용량이 자동적으로 증가한다고 한다.

판봉의 코멘트 : 배열보다 겁나게 좋은 것 같다..

 

하지만 이런 ArrayList도 단점이 있는데

ArrayList에서 특정 인덱스의 객체를 제거한다면 바로 뒤 인덱스부터 마지막에 있는 인덱스가 모두 앞으로 하나씩 당겨진다.

 

그렇기 때문에 객체수가 많고 특정인덱스에 객체 추가객체 제거가 많이 일어 난다면 

ArrayList는 사용하지 않는 것이 좋다.

 

하지만 인덱스를 이용하여 객체를 찾거나 맨 마지막에 객체를 추가할때는 좋은 결과를 낸다.

 

ex) String 객체를 저장하는 ArrayList 예제이다.

import java.util.*;

public class ArrayList {
	public static void main(String[] args) {
    List<String> list = new ArrayList<Stirng>();
    
    list.add("JAVA재밌다");
    list.add("C언어는어떨까");
    list.add("잘하고싶다.");
    list.add(2, "열심히하자");
    list.add("배고파");
    
    int size = list.size();
    System.out.println("총 객체수 : " + size);
    System.out.println();
    
    String indexGet = list.get(2);
    System.out.println("2:"+ indexGet);
    System.out.println();
    
    for(int i = 0 ; i < list.size(); i++) {
    String str = list.get(i);
    System.out.println(i + ":" + str);
    }
    System.out.println();
    
    list.remove(2);
    list.remove(2);
    list.remove("배고파");
    
    for(int i = 0 ; i <list.size(); i++) {
    String str = list.get(i);
    System.out.println(i + ":" + str);
    }
    }
}

/* 결과 값으론 총 객체 수 :5 / 
2: 열심히하자 /
0: JAVA재밌다. 1: C언어는어떨까 2:열심히하자 3:잘하고싶다 4:배고파/  
0: JAVA재밌다. 1: C언어는어떨까 */