인트로
안녕하세요 :)
오늘은 자바의 Collection 프레임워크의 List인터페이스 중 하나인 ArrayList클래스의 기본 및 활용에 대해 정리하였습니다.
목차
1. ArrayList
2. ArrayList 주요 메서드
2-1) ArrayList 선언
2-2) 원소 추가
2-3) 원소 삭제
2-4) 원소 변경
2-5) 원소 참조 및 검색
2-6) 리스트 크기 및 비어있는지 확인
1. ArrayList |
ArrayList 클래스는 Collection 프레임워크의 List인터페이스의 제너릭 클래스를 배열 형태로 관리할 수 있도록 하는 클래스로
순차적으로 자료를 저장하여 관리하는 프로그램을 구현할 때 사용되는 클래스입니다.
ArrayList의 주요 메서드
리스트 선언, 원소 추가, 원소 삭제, 원소 변경, 원소 참조 및 검색, 리스트 크기 및 비어있는지 확인
1. ArrayList 선언하기 |
먼저 ArrayList를 사용하려면 import java.util.ArrayList 를 선언해주어야 합니다.
import java.util.ArrayList
ArrayList<객체 타입> 이름 = new ArrayList<>();와 같은 형태로 선언합니다.
ArrayList arrlist = new ArrayList(); //type없는 list
ArrayList<String> str_arrlist = new ArrayList<String>(); //string
ArrayList<Integer> int_arrlist = new ArrayList<Integer>(); //integer
ArrayList<Animal> class_arrlist = new ArrayList<Animal>(); //class Animal
2. 원소 추가하기 |
2-1) ArrayList 맨 끝에 원소를 추가하기
ArrrayList의 add(value) 메소드를 통해 데이터를 추가합니다. 인덱스를 생략하는 경우 맨 끝에 데이터가 추가됩니다.
* ArrayList는 특정 용량을 벗어나 데이터를 추가하는 경우 저장 용량이 늘어나며 데이터가 삽입됩니다.
메서드
boolean add(E e)
사용 형태 및 예시
ArrayList<String> arrlist = new ArrayList<String>(); //string
arrlist.add("abc");
2-2) ArrayList 중간에 원소를 추가하기
ArrayList 중간에 원소를 삽입하고 싶은 경우 인덱스를 인수로 추가합니다.
이 경우 해당 인덱스에 데이터가 추가되고 인덱스 뒤의 원소들은 뒤로 1씩 밀려납니다.
사용형태 및 예시
ArrayList<String> arrlist = new ArrayList<String>(); //string
arrlist.add(2,"abcd");
3. 원소 삭제하기 |
3-1) 특정 인덱스 원소를 삭제하기
ArrayList의 remove(index) 메서드를 통해 해당 인덱스의 데이터를 삭제합니다.
해당 인덱스의 데이터를 삭제하는 경우 인덱스 뒤의 원소들이 앞으로 1씩 당겨집니다.
arrlist.remove(1); 의 경우 파라미터는 arrlist에서의 위치, 즉 인덱스이므로 1번째 인덱스의 데이터가 삭제됩니다.
메서드
boolean remove(Object o)
사용 형태 및 예시
arrlist.remove(int index);
//example
ArrayList<String> arrlist = new ArrayList<String>(); //string
arrlist.add("ab");
arrlist.add("abc");
arrlist.add("abcd");
arrlist.remove(1); //abc remove
3-2) 전체 Arraylist를 삭제하기
ArrayList의 전체 데이터를 삭제하는 방법 clear() 메서드가 있습니다.
이 경우 arrlist의 모든 원소를 삭제하고 시간복잡도는 O(N)입니다.
사용형태
arrlist.clear();
3-3) 인자로 전달된 Collection의 원소를 삭제하기
인자로 전달받은 Collection의 아이템들과 일치하는 객체를 리스트에서 삭제합니다.
arrlist = [10,20,30,40], removelist = [20,30] 의 데이터가 있고 arrlist.removeAll(removelist); 한 경우
arrlist에서 removelist에 해당하는 모든 데이터를 삭제합니다.
removeAll()의 해당 파라미터(removelist)는 삭제할 데이터를 가진 리스트입니다.
메서드
public boolean removeAll(Collection<?> c)
사용 형태 및 예시
arrlist.removeAll(removelist);
//example
ArrayList<Integer> arrlist = new ArrayList<Integer>();
arrlist.add(10);
arrlist.add(20);
arrlist.add(30);
arrlist.add(40);
ArrayList<Integer> removelist = new ArrayList<Integer>();
removelist.add(20);
removelist.add(30);
arrlist.removeAll(removelist);
//result ==> arrlist = [10,40];
4. 원소 변경하기 |
특정 인덱스의 리스트를 변경하고 싶은 경우 arrlist.set()메서드를 통해 변경합니다.
arrlist.set(1,200); 의 경우 첫번째 파라미터는 arrlist의 위치, 즉 인덱스를 뜻하고 두번째 파라미터는 변경할 값을 의미합니다.
메서드
public E set(int index, E element)
사용 형태 및 예시
arrlist.set(index, E e);
//example
ArrayList<Integer> arrlist = new ArrayList<Integer>(); //string
arrlist.add(10);
arrlist.add(20);
arrlist.add(30);
arrlist.set(1,200); //20 --> 200
5. 원소 참조 및 검색하기 |
5-1) 원소 참조 : get()
특정 인덱스의 데이터를 얻고 싶은 경우 arrlist.get()메서드를 통해 참조하여 얻습니다.
arrlist.get(1); 의 경우 파라미터는 arrlist의 위치, 즉 인덱스를 의미합니다.
메서드
public E get(int index)
5-2) 원소 검색: indexof()
특정 데이터의 인덱스를 알고 싶은경우, indexOf(데이터)메서드를 사용합니다.
arrlist.indexOf(10); 의 경우 파라미터는 arrlist에서 인덱스를 알고싶은 데이터를 의미합니다.
메서드
public int indexOf(Object o)
사용 형태 및 예시
int data = arrlist.get(int index);
int idx = arrlist.indexOf(data);
//example
ArrayList<Integer> arrlist = new ArrayList<Integer>(); //string
arrlist.add(10);
arrlist.add(20);
arrlist.add(30);
System.out.println(arrlist.get(0)); //0번째 인덱스 반환
for(Integer i : arrlist)
System.out.println(i);
System.out.println(arrlist.indexOf(10)); //10이 있는 인덱스 반환
6. 리스트 크기 및 비어있는지 확인 |
6-1) 리스트 크기 구하기 : size(), trimTosSize()
arrlist.size()메서드를 통해 리스트 내에 있는 원소의 개수를 리턴합니다.
메서드
public int size()
6-2) 리스트 비어있는 지 확인: isEmpty()
isEmpty() 메서드를 사용해 ArrayList에 요소가 있는지 없는 지 판단합니다.
메서드
public boolean isEmpty()
6-3) 리스트를 현재 사이즈로 최적화 : trimTosSize()
ArrayList 의 사이즈를 현재 리스트 사이즈에 축소해 최적화하는 함수입니다.
메서드
public void trimToSize()
'BE > JAVA' 카테고리의 다른 글
[JAVA] 기본 자료형 및 문자열 (0) | 2021.11.17 |
---|---|
[JAVA] 자바 언어의 특징 5가지 (0) | 2021.01.20 |
[JAVA] ArrayList : 객체 배열 클래스 (0) | 2020.08.10 |
[JAVA] 이클립스 한글 패치 적용하기 (0) | 2020.07.07 |
[JAVA] 자바의 final 상수 (0) | 2020.03.29 |