Java/JAVA 100 문제 풀이

자바 part.5 문제풀이 - ArrayList를 활용한 데이터 처리

진이최고다 2023. 8. 1. 16:46
예제
import java.util.ArrayList;

public class Collection_FrameworkArrayList02 {
	
    public static void main(String[] args) {
    	
    	//[0] : ArrayList 객체생성 -> 제네릭을 사용
    	ArrayList<String> ar = new ArrayList<String>();
    	
    	//[1] : 추가 -> add()
    	System.out.println("--- ar.get(2) 출력 ---");
    	ar.add("홍길동");
    	ar.add("이순신");
    	ar.add("육룡이");
    	ar.add("을지문덕");
    	ar.add("김유신");
    	System.out.println(ar.get(2)); //육룡이
    	String str = ar.get(0);		   //형변환 없이 바로 사용 -> 타입 안정성 
    	
    	//[2] : 수정 -> set(인덱스, 수정값)
    	System.out.printf("%n--- Index value 수정 ---%n");
    	ar.set(2, "나르샤"); // 육룡이 -> 나르샤
    	System.out.println(ar.get(2)); 
    	
    	//[3] : 삭제 -> 2가지 (단일 삭제, 모두 삭제) -> remove(index)
    	System.out.printf("%n---Index value 단일 삭제 ---%n");
    	ar.remove(2);  // ar.get(2) : 나르샤 -> ar.get(2) : 을지문덕
    	System.out.println(ar.get(2));  
    	
    	//[4] : 출력 -> 향상된 for문
    	for(String str1 : ar) {
    		System.out.println(str1 + "");
    	}
    	System.out.println();
    	
    	//[5] : 출력 2 
    	for(int i = 0; i < ar.size(); i++) {
    		System.out.printf("%d번의 학생의 이름은 %s 입니다. %n", (i + 1), ar.get(i));
    	}
    	
    	//[6] : 모두 삭제 -> removeAll(배열명)
    	System.out.printf("%n--- 모두 삭제 ---%n");
    	ar.removeAll(ar);
    	System.out.println("현재 데이터 index가 '" + ar.size() + "' 이므로");
    	
    	if(ar.size() == 0) {
    		System.out.println("현재 데이터가 존재하지 않습니다.");
    	}else {
    		System.out.println("현재 데이터가 존재합니다.");
    	}
    }
}

1. ArrayList 객체 생성과 추가

제네릭을 사용하여 "ArrayList<String>" 을 선언하고 생성한다. 여기서 제네릭 "<String>" 은 ArrayList에 저장될 데이터 타입을 String으로 지정하였음을 의미한다.

ArrayList<String> ar = new ArrayList<String>();

이후 "add()" 메서드를 사용하여 문자열 데이터를 추가한다. 추가된 데이터는 인덱스을 통해 참조될 수 있다.

ar.add("홍길동");
ar.add("이순신");
ar.add("육룡이");
ar.add("을지문덕");
ar.add("김유신");

2. 데이터 수정 : Set() 메서드

ArrayList에서 데이터를 수정하는 방법은 "set()" 메서드를 사용한다. 이 메서드는 첫 번째 인자로 인덱스를, 두번 째 인자로 변경할 값을 받아 해당 인덱스의 값을 변경한다.

ar.set(2, "나르샤");

이 경우, 인덱스 2의 값 "육룡이" 이 "나르샤"로 변경된다.

 

3. 데이터 삭제 : remove() 메서드

ArrayList에서 데이터를 삭제하는 방법은 "remove()" 메서드를 사용한다. 이 메서드는 인자로 인덱스를 받아 해당 인덱스의 값을 삭제한다.

ar.remove(2);

이 경우, 인덱스 2의 값 "나르샤"가 삭제된다.  삭제 후에는 인덱스가 다시 조정되므로, 인덱스 2는 이전 인덱스 3의 값 "을지문덕"을 가리킨다.

 

4. 모든데이터 삭제 : removeAll() 메서드

"removeAll()" 메서드는 특정 컬렉션에 있는 모든 요소를 ArrayList에서 삭제한다. 여기서는 "ar.removeAll(ar);" 코드로 ArrayList에 있는 모든 요소를 삭제하였다.