영호
[Java] List인터페이스 - ArrayList 본문
ArrayList란
Java collection의 List인터페이스 구현체입니다.
ArrayList는 배열을 이용하지만, 기존 배열은 용량이 다 차면 용량이 더 큰 배열을 만들어 기존 배열 요소들을 복사하는 작업이 필요했기 때문에, 이러한 단점을 극복하고 동적으로 용량이 늘어나는 Java Collection 클래스 중 하나입니다.
List인터페이스의 특징
- 배열 원소들의 순서가 유지되기 때문에, 인덱스를 통한 접근이 가능합니다.
- 중복 데이터가 허용됩니다.
ArrayList선언
ArrayList<Integer> arrList = new ArrayList<Integer>(); // Integer타입의 ArrayList
ArrayList<Integer> arrList1 = new ArrayList<>(20); // 초기용량 20
ArrayList<Integer> arrList2 = new ArrayList<>(); // new연산자에서 타입 지정 안해도됨
ArrayList<Integer> arrList3 = new ArrayList<>(Arrays.asList(1,2,3,4)); // 생성하면 원소 할당
System.out.println("arrList3 = " + arrList3);
// arrList3 = [1, 2, 3, 4]
ArrayList의 주요 메서드
사진출처 : https://st-lab.tistory.com/142
추가 메서드
- add(index, element) : index에 element를 삽입합니다.
- remove(index) : 해당 index원소를 삭제합니다.
- iterator() : iterator객체를 반환합니다.
메서드 구현 코드
package list;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Integer> arrList = new ArrayList<Integer>(); // Integer타입의 ArrayList
arrList.add(10);
arrList.add(20);
arrList.add(30);
// [10, 20, 30]
arrList.add(1, 15); // 인덱스를 지정해 원소 삽입 가능
System.out.println("arrList = " + arrList);
// [10, 15, 20, 30]
arrList.remove(Integer.valueOf(20)); // 객체를 넘겨 해당 객체 내용의 원소 삭제
System.out.println("arrList = " + arrList);
// [10, 15, 30]
arrList.remove(0); // 해당 인덱스의 원소 삭제
System.out.println("arrList = " + arrList);
// [15, 30]
System.out.println("arrList.contains(15) = " + arrList.contains(15));
// true
// 넘겨진 collection이 포함되는지 확인
// [15, 30] 은 15만 포함하기 때문에 false
System.out.println("arrList.containsAll(10,15) = " + arrList.containsAll(new ArrayList<>(Arrays.asList(10,15))));
// false
// arrList = [15, 30]
System.out.println("arrList.size() = " + arrList.size());
// 2
// arrList = [15, 30]
Integer getValue = arrList.get(0);
System.out.println("getValue = " + getValue);
// 15
// arrList = [15, 30]
arrList.set(0, 10); // (index, element)
System.out.println("arrList = " + arrList);
// arrList = [10, 30]
// arrList = [10, 30]
System.out.println("arrList.isEmpty() = " + arrList.isEmpty());
// false
// arrList = [10, 30]
ArrayList<Integer> equalTest = new ArrayList<>(Arrays.asList(10, 30));
System.out.println("arrList.equals(equalTest) = " + arrList.equals(equalTest));
// true
// arrList = [10, 30]
System.out.println("arrList.indexOf(30) = " + arrList.indexOf(30));
// 1
arrList.clear();
System.out.println("arrList = " + arrList);
// arrList = []
Iterator<Integer> iterator = arrList.iterator();
}
}
'Language > JAVA' 카테고리의 다른 글
[Java] Map인터페이스 - HashMap (0) | 2022.06.25 |
---|---|
[Java] List인터페이스 - LinkedList (0) | 2022.06.16 |
[Java] String Constant Pool (0) | 2022.06.08 |
[Java] ==, equals() 차이 (0) | 2022.06.08 |
[Java] Java 컬렉션 프레임워크(Collection Framework) (0) | 2022.05.31 |
Comments