프로그램 개발/미분류

[LeetCode/Java]Array and String - Introduction to Dynamic Array

(ㅇㅅㅎ) 2020. 8. 20. 14:35
728x90
반응형

나중에 다시 찾아보기 위한 한글 번역 및 요약

 

동적 배열이란?

배열은 고정된 크기를 가지고 있습니다. 하지만 동적 배열은 배열의 크기를 고정하지 않고 바꿀 수 있는 배열입니다.

 

다음과 같이 사용이 가능합니다.

public class Main {
    public static void main(String[] args) {
        // 1. 초기화
        List<Integer> v0 = new ArrayList<>();
        List<Integer> v1;// v1은 비어있다.(v1 == null)
 
        // 2. 배열을 벡터로 변경
        Integer[] a = {01234};
        v1 = new ArrayList<>(Arrays.asList(a));
 
        // 3. 복사본 만들기
        List<Integer> v2 = v1;// v1에 대한 또 다른 참조
        List<Integer> v3 = new ArrayList<>(v1);// v1의 실제 사본 만들기
 
        // 4. 길이 얻기
        System.out.println("The size of v1 is: " + v1.size());
 
        // 5. 원소 접근
        System.out.println("The first element in v1 is: " + v1.get(0));
 
        // 6. 벡터 값 출력 반복
        // 6-1. 방법 1
        System.out.print("[Version 1] The contents of v1 are:");
        for (int i = 0; i < v1.size(); ++i) {
            System.out.print(" " + v1.get(i));
        }
        System.out.println();
        // 6-2. 방법 2
        System.out.print("[Version 2] The contents of v1 are:");
        for (int item : v1) {
            System.out.print(" " + item);
        }
        System.out.println();
 
        // 7. 원소 수정
        // 7-1. v2의 인덱스 0의 원소 값 5로 수정된다.
        v2.set(05);       
        // v2는 v1를 참조하고 있기 때문에 v1이 수정된다.
        System.out.println("The first element in v1 is: " + v1.get(0));
        // 7-2. v3의 인덱스 0의 원소 값 -1로 수정
        v3.set(0-1);
        // v3는 v1의 참조가 아닌 복사본이기 때문에 
        // v1이 값이 바뀌는 것이 아니라 v3의 0번째 인덱스 값이 바뀐다.
        System.out.println("The first element in v1 is: " + v1.get(0));
        System.out.println("The first element in v3 is: " + v3.get(0));
 
        // 8. 정렬
        Collections.sort(v1);
 
        // 9. 새로운 원소 추가
        // 9-1. 마지막 위치에 -1 추가된다.
        v1.add(-1);
        // 9-2. 인덱스 1 위치에 6을 추가된다.
        v1.add(16);
 
        // 10. 마지막 원소 제거
        v1.remove(v1.size() - 1);
    }
}
 
반응형