ArrayList란 Collection 프레임워크의 일부이며
java.util 패키지에 소속되어 있습니다
표준 배열보다는 느리지만 배열에서 많은 조작이 필요한 경우 유용하게 사용할 수 있습니다
List 인터페이스에서 상속받아 사용이 됩니다
ArrayList는 객체가 추가되어 용량을 초과하면 자동으로 부족한 크기만큼 용량이 늘어납니다
↑ 내용 펌) https://crazykim2.tistory.com/558
배열 요소 추가 : 객체.add("스카이다이빙");
배열 요소 수정 : 객체.set(0, "백일홍");
배열 요소 삭제 : 객체.remove(1);
배열 요소 확인 : 객체.get(0)
ex) System.out.println(객체.get(0));
배열 길이 확인 : 객체.size()
배열 마지막 인덱스 확인 : 배열 길이 - 1
: hobbies.get(hobbies.size() - 1)
ex) System.out.println(hobbies.get(hobbies.size() - 1));
배열 요소 전체 확인 :
for(int i = 0, length = 객체.size(); i < length; i++) {
System.out.println(객체.get(i));
배열의 각 필드값 확인
System.out.println("이름: " + 객체.get(i).getName());
System.out.println("나이: " + 객체.get(i).getAge());
/*
* ┌--------------┐
* │ List │ List 인터페이스
* │--------------│
* │ add(); │
* │ get(); │
* │ size(); │
* │ set(); │
* │ remove(); │
* └--------------┘
* ▲
* │
* │
* ┌--------------┐
* │ ArrayList │ ArrayList 클래스
* │--------------│
* │ add(){} │ 요소 추가하기
* │ get(){} │ 요소 가져오기
* │ size(){} │ 요소 개수 반환하기
* │ set(){} │ 요소 수정하기
* │ remove(){} │ 요소 삭제하기
* └--------------┘
*/
public static void ex01() {
// java.util.List.
// 자동완성 : Ctrl+Space 하면 util.java 뜸.
// ArrayList의 인터페이스 List 타입 선언
List<String> season;
// ArrayList 생성
// ArrayList 자동완성 util 선택.
season = new ArrayList<String>();
//부모타입으로 자식타입에 저장할 수 있는거랑 같음.
// 배열 요소 추가하기
season.add("여름");
season.add("가을");
season.add("겨울");
season.add(0, "봄"); // 인덱스 0에 "봄"이 들어감.
// 배열 요소 확인하기
// 배열.get 메소드 쓰는 거 주의
System.out.println(season.get(0));
System.out.println(season.get(1));
System.out.println(season.get(2));
System.out.println(season.get(3));
}
public static void ex02() {
// ArrayList의 선언 & 생성
List<String> hobbies = new ArrayList<String>();
// 배열 요소 추가하기
hobbies.add("번지점프");
hobbies.add("스노쿨링");
hobbies.add("스카이다이빙");
// 배열 길이 확인 (저장된 요소의 갯수)
// 객체.size() : 배열 길이 확인.
System.out.println(hobbies.size());
// 처음에 배열의 길이를 잡지 않아도 됨.
// 배열 길이 관련 (마지막 요소 꺼내기)
System.out.println(hobbies.get(hobbies.size() - 1));
// 배열 for문 적용하기 (동일한 메소드를 여러 번 불러서 사용하면 성능저하가 발생한다.)
// 여기에서는 hobbies.length 가 아님.
for(int i=0; i < hobbies.size(); i++) {
System.out.println(hobbies.get(i));
}
// 배열 for문 적용하기 (리팩토링 : hobbies.size() 메소드가 여러 번 호출되는 문제 해결)
// 변수 length를 만들어서 hobbies 길이 넣고 돌림
for(int i = 0, length = hobbies.size(); i < length; i++) {
System.out.println(hobbies.get(i));
}
}
public static void ex04() {
// 배열을 ArrayList로 바꾸기
Integer[] a = {10, 20, 30, 40, 50};
List<Integer> numbers = Arrays.asList(a);
// int[] a 로 하면 안되고, 레퍼런스타입 Integer로 해야 한다.
// 주의!!!!! 초기화된 ArrayList는 길이를 변경할 수 없다.
// numbers.add(60); 불가능
// numbers.remove(0); 불가능
// for문
for(int i=0, length=numbers.size(); i < length; i++) {
System.out.println(numbers.get(i));
}
}
public static void ex05() {
// ArrayList 초기화
// 자동완성시 asList(T...a) 는 말줄임표로 요소의 개수 상관 없이 원하는 만큼 넣을 수 있다.(말줄임표는 사실 배열이다.)
List<Integer> numbers = Arrays.asList(10,20,30,40,50);
// for문
for(int i=0, length=numbers.size(); i<length; i++) {
System.out.println(numbers.get(i));
}
}
public static void main(String[] args) {
//ex01();
ex02();
}