java (ArrayList 1)

이인아·2024년 8월 29일
0

java

목록 보기
4/16

배열 삭제하는 방법

package day5.arrayRemove;

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

    // 10개 짜리 숫자 배열
    int[] arr = new int[10]; // 배열은 길이가 정해져야 함.


    int count = 0; // 내가 저장한 정보의 개수를 기억하기 위함

    arr[0] = 1;
    count++;

    arr[1] = 2;
    count++;

    arr[2] = 3;
    count++;

    arr[3] = 4;
    count++;

    arr[4] = 5;
    count++;

    // 저장한 숫자를 출력
    for(int i = 0; i < count; i++) {
        System.out.println(arr[i]);
    }

    // 1, 2, 3, 4, 5

    // 3 삭제 => 1, 2, 4, 5

    // 3을 삭제 ==========================

// arr[2] = arr[3];
// arr[3] = arr[4];
// arr[4] = arr[5];

    for(int i = 2; i < count - 1; i++) {
        arr[i] = arr[i + 1];
    }

    count--;
    //====================================

    // 3을 삭제한 결과 출력
    for(int i = 0; i < count; i++) {
        System.out.println(arr[i]);
    }

    // 배열에서 요소를 삭제하는 것은 불가능.
    // 삭제된 것처럼 보이게 해야함.
    // 못해먹겠다.

    // 배열은 단점이 있다 -> 길이가 고정
    // 유연성이 떨어지고 삭제나 추가 기능이 복잡하다.

    // 해결 -> 길이를 유동적으로 변하게 하는 배열 사용 => 동적배열 (ArrayList)
}

}

ArrayList 사용법

package day5.arrayListExam;

import java.util.ArrayList;

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

    // 생성

    // 배열
    int[] arr = new int[5]; // 길이 5인 숫자 배열 생성

    // ArrayList
    ArrayList<Integer> list = new ArrayList<>(); // 비어있는 배열

    // ===============================================

    // 추가
    // 배열 -> 추가 X
    // ArrayList -> 추가
    // 가장 앞에서부터 추가됨.
    list.add(1); // 0번 방에 추가
    list.add(2); // 1번 방에 추가

    // ===============================================
    // 조회
    System.out.println(arr[0]); // arr 배열의 0번방 조회
    System.out.println(arr[1]); // arr 배열의 1번방 조회
    System.out.println(arr[2]); // arr 배열의 2번방 조회

    // ArrayList
    System.out.println(list.get(0)); // list 배열의 0번방 조회
    System.out.println(list.get(1)); // list 배열의 1번방 조회

// System.out.println(list.get(2)); // list 배열의 2번방 조회 -> 2번방이 존재하지 않기 때문에 에러남

    // ===============================================
    // 수정

    // 배열
    arr[0] = 10; // arr 배열의 0번 방의 값을 10으로 수정.
    System.out.println(arr[0]);

    // ArrayList
    list.set(0, 10); // list 배열의 0번 방의 값을 10으로 수정.
    System.out.println(list.get(0));

    // ===============================================
    // 삭제
    // 배열 -> 삭제 X
    // ArrayList
    System.out.println(list.get(0));
    System.out.println(list.get(1));

    list.remove(0); // 0번방의 값을 삭제. 삭제하면 뒤에 있는 요소들이 앞으로 땡겨짐.

    System.out.println(list.get(0));

// System.out.println(list.get(1)); // 삭제로 인해 1번방이 존재하지 않기 때문에 에러가 남

    // ===============================================
    // 데이터의 개수 확인
    // 배열 => length를 제공하기는 하지만 데이터의 개수랑 무관. 따로 내가 변수에 직접 보관해야 함.

    // ArrayList
    System.out.println(list.size()); // 1
    list.add(2);
    list.add(3);
    System.out.println(list.size()); // 3

    // 배열보다 ArrayList가 사용성이 훨씬 편하므로 ArrayList를 주로 사용하고
    // 성능이 중요한 부분에서는 배열을 사용한다.

// int -> Integer

// ArrayList는 타입(자료형)을 객체만 다룬다.

// 객체형 자료형(리모콘), 원시형 자료형(int, boolean, double) 두가지로 구분.

// 원시형의 객체형 자료형을 제공
// int(원시형) -> Integer(객체형)
// char -> Character
// double -> Double
// byte -> Byte
// boolean -> Boolean
// 원시형 타입명에서 앞글자만 대문자로 바꾸면 객체형

// String은 원래 객체형

}

}

0개의 댓글