Java

[Java] ArrayList 사용법

건휘맨 2024. 6. 3. 18:05

ArrayList는 자바에서 제공하는, 크기가 변할 수 있는 배열

ArrayList를 사용하면 정해진 크기 없이 자유롭게 요소를 추가하고 제거할 수 있다.

 

주요 특징으로는

 

동적 크기:

ArrayList는 요소를 추가하면 자동으로 크기가 늘어나고, 요소를 제거하면 크기가 줄어든다.

 

인덱싱:

배열처럼 숫자(index)를 사용해서 요소를 쉽게 꺼내 쓸 수 있다.

예를 들어, 첫 번째 요소를 가져오려면 list.get(0)을 사용

 

다양한 타입 저장:

ArrayList는 다양한 데이터 타입(문자열, 숫자 등)의 요소를 저장할 수 있다.

import java.util.ArrayList;

public class ArrayListMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 기존의 Array(배열) 은 정해진 데이터의 갯수 이상으로는 데이터 추가가 불가하다!
		
		// 따라서 갯수 제한 없이 데이터를 마음대로 추가할 수도 있고
		// 삭제도 할 수 있는 것이 ArrayList 다.
		
		// 사람의 이름을 저장할 수 있는 데이터 스트럭쳐를 만들겠다.
		// ArrayList 로 만든다.
		
		// 담고 싶은 데이터의 타입을 < > 안에 적어줘야 한다.
		ArrayList<String> nameList = new ArrayList<String>();
		
		// 데이터 추가
		nameList.add("홍길동");
		nameList.add("김나나");
		nameList.add("Mike");
		
		// 데이터 억세스
		System.out.println(nameList.get(0));
		System.out.println(nameList.get(1));
		System.out.println(nameList.get(2));
		
		System.out.println("---------------");
		
		// 전체 데이터를 다 출력하시오.
		for(int i=0; i<nameList.size(); i++) {
			System.out.println(nameList.get(i));
		}
		
		System.out.println("---------------");
		
		// for each 반복문
		for(String name : nameList) {
			System.out.println(name);
		}
		
		System.out.println("---------------");
		
		// 첫번쨰 데이터 홍길동을 김길동으로 변경
		nameList.set(0, "김길동");
		System.out.println(nameList.get(0));
		
		// 데이터 1개 삭제
		// 인덱스로 삭제
		nameList.remove(0);
		
		System.out.println("---------------");
		
		for(String name : nameList) {
			System.out.println(name);
		}
		
		// 값으로 삭제
		nameList.remove("Mike");
		
		System.out.println("---------------");
		
		for(String name : nameList) {
			System.out.println(name);
		}
		
		// 모든 데이터 한꺼번에 삭제
		nameList.clear();
		
		System.out.println("---------------");
		
		for(String name : nameList) {
			System.out.println(name);
		}
		
		// 데이터 비어있는지 아닌지 확인하는 함수
		if (nameList.isEmpty()) {
			System.out.println("비어있다.");
		}else {
			System.out.println("데이터가 있다.");
		}
		
		
	}

}