[Java] 자바 ArrayList 사용방법 및 예제
ArrayList는 자바에서 데이터 처리시 가장 많이 사용하는 클래스로 반드시 알고 있어야 개발할때 유용하다.
■ArrayList 선언 방법
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
// Integer 타입으로 리스트 선언
ArrayList<Integer> arrayList = new ArrayList<Integer>();
// 타입 파라미터 생략가능
ArrayList<Integer> arrayList = new ArrayList<>();
}
}
ArrayList 사용시 ArrayList에 타입을 명시해주는 방향으로 코딩하자. 배열과 다르게 ArrayList는 리스트의 사이즈를 명시할 필요가 없다. 데이터를 추가할때 자동으로 증가한다.
■ArrayList에 데이터 추가하기 : add()메소드를 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
}
}
[출력결과]
■ArrayList에 인덱스를 지정하여 데이터 추가하기 : add()메소드를 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
//ArrayList<Integer> arrayList = new ArrayList<>();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
arrayList.add(2,1000); //인덱스 2에 1000 추가
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
}
}
[출력결과]
ArrayList의 add(index, value) 메소드를 사용하여 추가하는데, index를 생략하면 ArrayList 맨 뒤에 데이터가 추가 된다. index중간에 값을 추가하면 그 위치에 데이터가 추가되며, 그 다음 인덱스부터 마지막 인덱스까지 모두 1씩 뒤로 밀려난다.
■ArrayList에 데이터 추가하기 : addAll()메소드를 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<>();
ArrayList<Integer> arrayList2 = new ArrayList<>();
//첫번째 리스트
arrayList.add(1);
arrayList.add(2);
//두번째 리스트
arrayList2.add(10);
arrayList2.add(20);
//첫번째 리스트에 두번째리스트의 모든 데이터를 추가하기
arrayList.addAll(arrayList2);
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
}
}
[출력결과]
■ArrayList 데이터 삭제하기 : remove()메소드 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
arrayList.add(2,1000); //인덱스 2에 1000 추가
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
System.out.println("nn리스트 값 제거 후n" );
arrayList.remove(1);
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
}
}
arrayList.remove(1)의 의미는 1번째 인덱스 값을 삭제한다는 뜻이다. 아래 출력결과를 보면 쉽게 이해할 수 있다.
[출력결과]
■ArrayList의 모든 데이터를 삭제하는 방법은clear()메소드를 호출하면된다.
arrayList.clear();
■ArrayList 사이즈 구하기 : size()메소드 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
System.out.println("리스트 사이즈 : " + arrayList.size());
}
}
[출력결과]
■ArrayList 특정 값 가져오기: get()메소드 사용
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
System.out.println("리스트 특정값 구하기 : " + arrayList.get(3));
}
}
arrayList.get(3)은 세번째 인덱스에 위치한 값을 가져옴을 뜻한다. 인덱스는 0부터 시작됨으로, 4번째 추가한 값을 출력하게된다.
[출력결과]
■ArrayList 특정 값 찾기 : indexOf()메소드와 lastIndexOf()메소드 사용한다.
ArrayList.indexOf()는 앞에서 순서 찾기, ArrayList.lastIndexOf()는 뒤에서 순서를 찾는다. 어느것을 사용하든 결과값(리턴값)은 동일하다. 찾는 값이 존재하지 않는 경우 -1를 리턴한다.
package edu.sample;
import java.util.ArrayList;
public class arrayListExample {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
System.out.println("indexOf(20) : " + arrayList.indexOf(20));
System.out.println("indexOf(4) : " + arrayList.indexOf(4));
System.out.println("lastIndexOf(4) : " + arrayList.lastIndexOf(4));
System.out.println("indexOf(1) : " + arrayList.indexOf(1));
}
}
[출력결과]
■ArrayList 값 출력방법 : for문을 사용하거나 Iterator를 사용
package edu.sample;
import java.util.ArrayList;
import java.util.Iterator;
public class arrayListExample {
public static void main(String[] args) {
//ArrayList<Integer> arrayList = new ArrayList<>();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
arrayList.add(2,1000); //인덱스 2에 1000 추가
for(int i : arrayList)
{
System.out.println("리스트 값 : " + i );
}
Iterator iterator = arrayList.iterator(); //Iterator 선언
while(iterator.hasNext()){//다음 값 체크
System.out.println("리스트 값 : " + iterator.next() );//값 출력
}
}
}
출력결과는 동일하다.
[연관 자료]