배열은 생성할 때 크기가 고정되고 사용 중에 크기를 변경할 수 없지만, 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
'Java > 15. 컬렉션 프레임워크 (Collection Framework)' 카테고리의 다른 글
Day 20 : Set 컬렉션 (0) | 2021.11.15 |
---|---|
Day 20 : List 컬렉션 - LinkedList (0) | 2021.11.15 |
Day 20 : List 컬렉션 - Vector (0) | 2021.11.15 |
Day 20 : List 컬렉션 (0) | 2021.11.15 |
Day 20 : 컬렉션 프레임워크 (0) | 2021.11.15 |