배열은 생성할 때 크기가 고정되고 사용 중에 크기를 변경할 수 없지만, ArrayList는 저장 용량(capacity)을 초과한 객체들이 들어오면 자동적으로 저장 용량이 늘어난다.

 

ArrayList()

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

 

ArrayList에서 특정 인덱스의 객체를 제거하면 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨진다.

특정 인덱스의 객체를 삽입하면 해당 인덱스부터 마지막 인덱스까지 모두 1씩 밀려난다.

 

String 객체를 저장하는 ArrayList

package sec02.exam01_arraylist;

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("Java"); // index = 0
		list.add("JDBC"); // index = 1
		list.add("Servlet/JSP"); // index = 2 -> 3
		list.add(2, "Database"); // index = 2에 삽입 (원래 index2는 3으로 밀려남)
		list.add("iBATIS"); // index = 4
		
		int size = list.size(); //저장된 총 객체 수 얻기
		System.out.println("총 객체 수: " + size);
		System.out.println();
		
		String skill = list.get(2); //2번 인덱스의 객체 얻기
		System.out.println("2: " + skill);
		System.out.println();
		
		for(int i=0; i<list.size(); i++) { //저장된 객체 수 만큼 루핑
			String str = list.get(i);
			System.out.println(i + ": " + str);
		}
		System.out.println();
		
		list.remove(2); //2번 인덱스 객체 : Database 삭제 -> 3번 인덱스가 2번으로 당겨짐
		list.remove(2); //2번 인덱스 객체 : Servlet/JSP 삭제
		list.remove("iBATIS");
		
		for(int i=0; i<list.size(); i++) { //저장된 객체 수 만큼 루핑
			String str = list.get(i);
			System.out.println(i + ": " + str);
		}
	}	
}
총 객체 수: 5

2: Database

0: Java
1: JDBC
2: Database
3: Servlet/JSP
4: iBATIS

0: Java
1: JDBC

 

Arrays.asList()

: 고정된 객체들로 구성된 List (값 목록)

List<T> list = Arrays.asList(...);

 

Array.asList() 메소드

package sec02.exam01_arraylist;

import java.util.Arrays;
import java.util.List;

public class ArrayAsListExample {
	public static void main(String[] args) {
		List<String> list1 = Arrays.asList("홍길동", "신용권", "감자바");
		for(String name : list1) {
			System.out.println(name);
		}
		
		List<Integer> list2 = Arrays.asList(1, 2, 3); //List<int> (X) List<Integer> (O)
		for(int value : list2) { //int value (O)
			System.out.println(value);
		}		
	}
}
홍길동
신용권
감자바
1
2
3

+ Recent posts