자바 - List ( ArrayList )

빵제이·2023년 7월 27일
0

자바

목록 보기
29/37

[ ArrayList ]

  • ArrayList란 Collection 프레임워크의 일부이며
    java.util 패키지에 소속되어 있습니다

  • 표준 배열보다는 느리지만 배열에서 많은 조작이 필요한 경우 유용하게 사용할 수 있습니다

  • List 인터페이스에서 상속받아 사용이 됩니다

  • ArrayList는 객체가 추가되어 용량을 초과하면 자동으로 부족한 크기만큼 용량이 늘어납니다

↑ 내용 펌) https://crazykim2.tistory.com/558

  • 객체를 새로 만들 때 아니면, 변경시에는 new를 적지 않는다.

  • 배열 요소 추가 : 객체.add("스카이다이빙");

  • 배열 요소 수정 : 객체.set(0, "백일홍");

  • 배열 요소 삭제 : 객체.remove(1);

  • 배열 요소 확인 : 객체.get(0)
    ex) System.out.println(객체.get(0));

  • 배열 길이 확인 : 객체.size()

  • 배열 마지막 인덱스 확인 : 배열 길이 - 1
    : hobbies.get(hobbies.size() - 1)
    ex) System.out.println(hobbies.get(hobbies.size() - 1));

  • 배열 요소 전체 확인 :
    for(int i = 0, length = 객체.size(); i < length; i++) {
    System.out.println(객체.get(i));

  • 배열의 각 필드값 확인
    System.out.println("이름: " + 객체.get(i).getName());
    System.out.println("나이: " + 객체.get(i).getAge());


[ 관계 ]

/*
 *  ┌--------------┐
 *  │     List     │ List 인터페이스
 *  │--------------│
 *  │   add();     │
 *  │   get();     │
 *  │   size();    │
 *  │   set();     │
 *  │   remove();  │
 *  └--------------┘
 *          ▲
 *          │
 *          │
 *  ┌--------------┐
 *  │   ArrayList  │ ArrayList 클래스
 *  │--------------│
 *  │   add(){}    │ 요소 추가하기
 *  │   get(){}    │ 요소 가져오기
 *  │   size(){}   │ 요소 개수 반환하기
 *  │   set(){}    │ 요소 수정하기
 *  │   remove(){} │ 요소 삭제하기
 *  └--------------┘
 */

[ ex01 ]

 public static void ex01() {
    
  // java.util.List. 
  // 자동완성 : Ctrl+Space 하면 util.java 뜸.
  // ArrayList의 인터페이스 List 타입 선언
    List<String> season;
    
    // ArrayList 생성
    // ArrayList 자동완성 util 선택.
    season = new ArrayList<String>();
    //부모타입으로 자식타입에 저장할 수 있는거랑 같음.
    
    // 배열 요소 추가하기
    season.add("여름");
    season.add("가을");
    season.add("겨울");
    season.add(0, "봄"); // 인덱스 0에 "봄"이 들어감.
    
    // 배열 요소 확인하기
    // 배열.get 메소드 쓰는 거 주의
    System.out.println(season.get(0));
    System.out.println(season.get(1));
    System.out.println(season.get(2));
    System.out.println(season.get(3));
    
  }

[ ex02 ]

public static void ex02() {
  
// ArrayList의 선언 & 생성
  List<String> hobbies = new ArrayList<String>();
  
  // 배열 요소 추가하기
  hobbies.add("번지점프");
  hobbies.add("스노쿨링");
  hobbies.add("스카이다이빙");
  
  // 배열 길이 확인 (저장된 요소의 갯수)
  // 객체.size() : 배열 길이 확인.
  System.out.println(hobbies.size());
  // 처음에 배열의 길이를 잡지 않아도 됨.
  
  // 배열 길이 관련 (마지막 요소 꺼내기)
  System.out.println(hobbies.get(hobbies.size() - 1));

  // 배열 for문 적용하기 (동일한 메소드를 여러 번 불러서 사용하면 성능저하가 발생한다.)
  // 여기에서는 hobbies.length 가 아님.
  for(int i=0; i < hobbies.size(); i++) {
    System.out.println(hobbies.get(i));
  }  
  // 배열 for문 적용하기 (리팩토링 : hobbies.size() 메소드가 여러 번 호출되는 문제 해결)
  // 변수 length를 만들어서 hobbies 길이 넣고 돌림
    for(int i = 0, length = hobbies.size(); i < length; i++) {
      System.out.println(hobbies.get(i));
    }
}

[ ex03 ] : 내용 겹쳐서 생략


[ ex04 ]

public static void ex04() {
 // 배열을 ArrayList로 바꾸기
    Integer[] a = {10, 20, 30, 40, 50};
    List<Integer> numbers = Arrays.asList(a);
    // int[] a 로 하면 안되고, 레퍼런스타입 Integer로 해야 한다.
  
    // 주의!!!!! 초기화된 ArrayList는 길이를 변경할 수 없다.
    // numbers.add(60); 불가능
    // numbers.remove(0); 불가능
    
    // for문
    for(int i=0, length=numbers.size(); i < length; i++) {
      System.out.println(numbers.get(i));
    }
  }

[ ex05 ]


public static void ex05() {

    // ArrayList 초기화
    // 자동완성시 asList(T...a) 는 말줄임표로 요소의 개수 상관 없이 원하는 만큼 넣을 수 있다.(말줄임표는 사실 배열이다.)
    List<Integer> numbers = Arrays.asList(10,20,30,40,50);
  
    // for문
    for(int i=0, length=numbers.size(); i<length; i++) {
      System.out.println(numbers.get(i));
    }
  }

[ 메인 메소드 ]

public static void main(String[] args) {
  //ex01();
   ex02();
 }
profile
개인 아카이브

0개의 댓글