English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 상대적 객체(I)

Java 상대적 객체(II)

Java 상대적 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력출력(I/O)

Java Reader/Writer

Java 다른 주제

Java ArrayList

이 튜토리얼에서는 Java ArrayList 클래스를 배울 것입니다. 예제를 통해 ArrayList의 다양한 연산과 메서드를 배울 것입니다.

ArrayList 클래스는 List 인터페이스를 구현하여 크기를 조정할 수 있는 배열을 생성할 수 있게 합니다.

Java 배열과 ArrayList

Java에서는 배열의 크기를 선언한 후에야 사용할 수 있습니다. 배열의 크기가 선언되면 그 크기를 변경하는 것은 어려울 수 있습니다.

이 문제를 해결하기 위해 ArrayList 클래스를 사용할 수 있습니다. java.util 패키지에 존재하는 ArrayList 클래스는 크기를 조정할 수 있는 배열을 생성할 수 있게 합니다.

배열과 달리, 배열리스트(ArrayList 클래스의 객체)는 요소를 추가하거나 제거할 때 자동으로 용량을 조정할 수 있습니다. 따라서 배열리스트는 동적 배열이라고도 합니다.

ArrayList 생성

이것은 Java에서 배열리스트를 생성할 수 있는 방법입니다:

ArrayList<Type> arrayList = new ArrayList<>();

여기서 Type은 배열 리스트의 타입을 나타냅니다. 예를 들어,

//정수 타입 ArrayList 생성
ArrayList<Integer> arrayList = new ArrayList<>();
//문자열 타입 ArrayList 생성
ArrayList<String> arrayList = new ArrayList<>();

위의 프로그램에서 우리는 Integer와 String을 사용했습니다. 여기서 Integer는 int 타입의 해당 포장 클래스입니다.

포장 클래스는 원시 데이터 타입을 포장하는 클래스입니다. 예를 들어, Integer 클래스는 int 타입을 포장하며, Float 클래스는 Float 타입을 포장합니다.

주의:원시 데이터 타입(예: int, float, char 등)의 배열 리스트를 생성할 수 없습니다. 대신, 그들과 일치하는 포장 클래스를 사용해야 합니다.

문자열의 경우, String은 클래스이며, 포장 클래스가 없습니다. 따라서 우리는 그대로 String을 사용합니다.

우리는 또한 List 인터페이스를 사용하여 ArrayList을 생성할 수 있습니다. 이는 ArrayList 클래스가 List 인터페이스를 구현하기 때문입니다.

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

ArrayList 메서드

ArrayList은 배열 리스트 작업을 수행할 수 있는 여러 가지 메서드를 제공합니다.

ArrayList에 요소 추가

1. add() 메서드 사용

단일 요소를 배열 리스트에 추가하려면 add() 메서드를 사용합니다. 예를 들어:

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //요소 추가
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
    }
}

출력 결과

ArrayList: [Dog, Cat, Horse]

2. 인덱스 번호

우리는 또한 인덱스를 사용하여 배열 리스트에 요소를 추가할 수 있습니다. 예를 들어:

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //요소 추가
        animals.add(0,"Dog");
        animals.add(1,"Cat");
        animals.add(2,"Horse");
        System.out.println("ArrayList: ") + animals);
    }
}

출력 결과

ArrayList: [Dog, Cat, Horse]

3. 배열 리스트의 요소를 다른 배열 리스트에 추가

배열 리스트의 모든 요소를 새 배열 리스트에 추가하려면 addAll() 메서드를 사용하세요. 예를 들어:

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> mammals = new ArrayList<>();
        mammals.add("Dog");
        mammals.add("Cat");
        mammals.add("Horse");
        System.out.println("哺乳류: " + mammals);
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Crocodile");
        // mammals에 있는 모든 요소를 animals에 추가
        animals.addAll(mammals);
        System.out.println("동물들: " + animals);
    }
}

출력 결과

Mammals: [Dog, Cat, Horse]
Animals: [Crocodile, Dog, Cat, Horse]

asList() 사용하여 ArrayList 초기화

배열과 달리, 배열 목록을 직접 초기화할 수 없습니다. 그러나 Arrays 클래스의 asList() 메서드를 사용하여 같은 효과를 얻을 수 있습니다.

asList() 메서드 사용하기 위해 먼저 java.util.Arrays 패키지를 가져와야 합니다.

예를 들어,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //배열 목록을 생성합니다
        ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
        System.out.println("ArrayList: ") + animals);
        //배열 목록 요소 접근
        String element = animals.get(1;
        System.out.println("요소 접근: " + element);
    }
}

출력 결과

ArrayList: [Cat, Cow, Dog]
요소 접근: Cow

위의 예제에서 다음과 같은 표현에 주의하세요:

new ArrayList<>(Arrays.asList(("Cat", "Cow", "Dog"));

여기서는 먼저3요소가 "Cat", "Cow", "Dog"인 배열: 그런 다음 asList() 메서드를 사용하여 배열을 배열 목록으로 변환합니다.

ArrayList의 요소 접근

1.get() 메서드 사용

배열 목록의 요소를 랜덤으로 접근하려면 get() 메서드를 사용합니다. 예를 들어,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");
        System.out.println("ArrayList: ") + animals);
        //배열 목록에서 요소 가져오기
        String str = animals.get(0);
        System.out.print("인덱스0 위치의 요소: " + str);
    }
}

출력 결과

ArrayList: [Dog, Horse, Cat]
인덱스0 위치의 요소: Dog

2.iterator() 메서드 사용

배열 목록의 요소를 순서대로 접근하려면 iterator() 메서드를 사용합니다. 이 메서드를 사용하려면 java.util.Iterator 패키지를 가져와야 합니다. 예를 들어,

import java.util.ArrayList;
import java.util.Iterator;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        animals.add("Zebra");
        //Iterator 객체 생성
        Iterator<String> iterate = animals.iterator();
        System.out.print("ArrayList: ");
        //이터레이터 메서드를 사용하여 요소 접근
        while(iterate.hasNext()){
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

출력 결과

ArrayList: Dog, Cat, Horse, Zebra,

주의사항

  • hasNext() - arrayList에 다음 요소가 있으면 true를 반환합니다.

  • next()  -  배열 목록의 다음 요소를 반환합니다

ArrayList 요소를 변경합니다

배열 목록의 요소를 변경하려면 set() 메서드를 사용할 수 있습니다. 예를 들어,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //배열 목록의 요소를 변경합니다
        animals.set(2, "Zebra");
        System.out.println("수정된 ArrayList: "); + animals);
    }
}

출력 결과

ArrayList: [Dog, Cat, Horse]
수정된 ArrayList: [Dog, Cat, Zebra]

ArrayList 요소를 지우기

1.remove() 메서드를 사용합니다.

배열 목록에서 요소를 지우려면 remove() 메서드를 사용할 수 있습니다. 예를 들어,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("초기 ArrayList: "); + animals);
        //INDEX에서2에서 요소를 지우기
        String str = animals.remove(2;
        System.out.println("최종 ArrayList: "); + animals);
        System.out.println("요소를 지우기: "); + str);
    }
}

출력 결과

초기 ArrayList: [Dog, Cat, Horse]
결과 ArrayList: [Dog, Cat]
요소를 지우기: Horse

2.removeAll() 메서드를 사용합니다.

배열 목록에서 모든 요소를 지우려면 removeAll() 메서드를 사용합니다. 예를 들어,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // ArrayList에 요소 추가
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("초기 ArrayList: "); + animals);
        // 모든 요소를 지웁니다.
        animals.removeAll(animals);
        System.out.println("최종 ArrayList: "); + animals);
    }
}

출력 결과

초기 ArrayList: [Dog, Cat, Horse]
결과 ArrayList: []

3.clear() 메서드를 사용합니다.

우리는 또한 clear() 메서드를 사용하여 배열 목록에서 모든 요소를 지울 수 있습니다. 예를 들어,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("초기 ArrayList: "); + animals);
        //모든 요소를 지웁니다.
        animals.clear();
        System.out.println("최종 ArrayList: "); + animals);
    }
}

출력 결과

초기 ArrayList: [Dog, Cat, Horse]
결과 ArrayList: []

주의:clear() 메서드는 removeAll() 메서드보다 효율적입니다.

ArrayList를 순회합니다.

1.for 반복을 사용합니다.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //배열 목록을 생성합니다
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Cat");
        animals.add("Dog");
        System.out.println("ArrayList: ") + animals);
        //for 반복을 사용합니다.
        System.out.println("모든 요소에 접근합니다: ");
        for(int i = 0; i < animals.size(); i++) {
            System.out.print(animals.get(i));
            System.out.print(", ");
        }
    }
}

출력 결과

ArrayList: [Cow, Cat, Dog]
모든 요소에 접근합니다:
Cow, Cat, Dog,

2.forEach 반복을 사용합니다.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // 배열 목록을 생성합니다
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Cat");
        animals.add("Dog");
        System.out.println("ArrayList: ") + animals);
        //forEach 루프를 사용합니다
        System.out.println("모든 요소에 접근합니다: ")
        for(String animal : animals) {
            System.out.print(animal);
            System.out.print(", ");
        }
    }
}

출력 결과

ArrayList: [Cow, Cat, Dog]
모든 요소에 접근합니다:
Cow, Cat, Dog,

두 예제에서 모두 배열 목록의 각 요소에 접근했습니다.

ArrayList의 길이를 가져옵니다

배열 목록의 길이를 가져오기 위해size() 메서드를 사용합니다. 예를 들어:

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // arrayList에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");
        System.out.println("ArrayList: ") + animals);
        //arrayList의 크기를 가져옵니다
        System.out.println("arrayList의 크기: ") + animals.size());
    }
}

출력 결과

ArrayList: [Dog, Horse, Cat]
arrayList의 크기: 3

ArrayList의 요소를 정렬합니다

배열 목록의 요소를 정렬하려면 Collections 클래스의 sort() 메서드를 사용합니다. 이를 사용하려면 먼저 java.util.Collections 패키지를 가져와야 합니다.

기본적으로, 정렬은 문자나 숫자의 오름차순으로 이루어집니다. 예를 들어:

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Horse");
        animals.add("Zebra");
        animals.add("Dog");
        animals.add("Cat");
        System.out.println("정렬되지 않은ArrayList: ") + animals);
        //배열 목록을 정렬합니다
        Collections.sort(animals);
        System.out.println("정렬된ArrayList: ") + animals);
    }
}

출력 결과

정렬되지 않은ArrayList: [Horse, Zebra, Dog, Cat]
정렬된ArrayList: [Cat, Dog, Horse, Zebra]

배열 목록에 대한 정렬에 대한更多信息를 알고 싶다면 Java ArrayList sort를 방문하세요.

Java ArrayList을 배열로 변환

Java에서는toArray() 메서드를 사용하여 배열 목록을 배열로 변환할 수 있습니다. 예를 들어:

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //배열 목록에 요소를 추가합니다
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //새로운 String 타입 배열 생성
        String[] arr = new String[animals.size()];
        //ArrayList을 배열로 변환
        animals.toArray(arr);
        System.out.print("Array: ");
        for(String item: arr) {
            System.out.print(item+", ");
        }
    }
}

출력 결과

ArrayList: [Dog, Cat, Horse]
Array: Dog, Cat, Horse,

Java 배열을 ArrayList로 변환

또한 배열을 배열 목록으로 변환할 수 있습니다. 이를 위해 Arrays 클래스의 asList() 메서드를 사용할 수 있습니다.

asList()를 사용하려면 먼저 java.util.Arrays 패키지를 가져와야 합니다. 예를 들어

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //String 타입의 배열 생성
        String[] arr = {"Dog", "Cat", "Horse"};
        System.out.print("Array: ");
        //배열 출력
        for(String str: arr) {
            System.out.print(str);
            System.out.print(" ");
        }
        //배열로부터 ArrayList 생성
        ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr));
        System.out.println("\nArrayList: ") + animals);
    }
}

출력 결과

Array: Dog, Cat, Horse
ArrayList: [Dog, Cat, Horse]

위 프로그램에서는 먼저 String 타입의 배열 arr를 생성했습니다.

그런 다음, asList() 메서드를 사용하여 배열을 배열 목록으로 변환합니다.

Java ArrayList 문자열 변환

배열 목록을 문자열로 변환하려면 toString() 메서드를 사용할 수 있습니다. 예를 들어

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //ArrayList에 요소 추가
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //ArrayList을 문자열로 변환
        String str = animals.toString();
        System.out.println("String: " + str);
    }
}

출력 결과

ArrayList: [Dog, Cat, Horse]
String: [Dog, Cat, Horse]

주의: toString()은 전체 배열 목록을 단일 String으로 변환합니다。

기타 ArrayList 메서드

메서드내용 설명
clone()

동일한 요소, 크기, 용량을 가진 새 배열 목록을 생성합니다。

contains()

지정된 요소를 배열 목록에서 검색하고布尔值을 반환합니다。

ensureCapacity()

배열 목록이 포함할 수 있는 최대 요소 수를 지정합니다。

isEmpty()

배열 목록이 비어 있는지 확인합니다。

indexOf()

지정된 요소를 배열 목록에서 검색하고 그 요소의 인덱스를 반환합니다。

trimToSize()

배열 목록의 용량을 현재 크기로 줄입니다。