안치현의 블로그

ArrayList 사용하기 본문

Computer Science/자료구조with자바

ArrayList 사용하기

chihyun 2019. 5. 20. 14:26

 

ArrayList는 배열을 사용하여 리스트를 사용하는 것.

 

데이터의 추가

인덱스 1의 위치에 데이터를 추가하기 위해서는

제일 끝 데이터를 한 칸씩 밀면서 인덱스 1의 자리를 확보하고

인덱스 1의 자리에 데이터를 추가한다.

 

데이터의 삭제

인덱스 3의 위치에 있는 데이터를 삭제하면

인덱스 3의 위치는 빈자리가 되고

인덱스 4의 위치에 있는 데이터를 인덱스 3의 위치로 옮기고,

인덱스 5의 위치에 있는 데이터를 인덱스 4의 위치로 옮기고....

이렇게 마지막 인덱스 위치의 데이터까지 옮기면서 중간의 빈 공간을 없앱니다.

 

ArrayList 장단점

단점 : ArrayList에서 데이터를 추가/삭제할 때 시간이 많이 걸린다.

장점 : 인덱스 값으로 데이터를 가져올 때 바로 가져올 수 있다.

 

자바에서 ArrayList 사용하기

package Second;

import java.util.ArrayList;
import java.util.Iterator;


public class Second {

	public static void main(String[] args) {
		ArrayList<Integer> numbers = new ArrayList<>(); // 정수형 ArrayList 선언
		
		numbers.add(10); // 데이터 10 추가
		numbers.add(20); // 데이터 20 추가
		numbers.add(30); // 데이터 30 추가
		numbers.add(40); // 데이터 40 추가
		System.out.println(numbers); // ArrayList 출력
		
		numbers.add(1, 50); // 인덱스 1 위치에 데이터 50 추가
        
		numbers.remove(2); // 인덱스 2 위치의 데이터 삭제

		System.out.println(numbers.get(2)); // 인덱스 2 위치의 데이터 출력
		System.out.println(numbers.size()); // ArrayList의 크기 출력
		System.out.println(numbers.indexOf(30)); // 데이터 30의 인덱스 출력
		
        Iterator it = numbers.iterator(); // ArrayList의 데이터를 읽기 위해 Iterator 인터페이스를 사용
        
		while(it.hasNext()) { // 읽어올 데이터가 있는지 확인하고
			int value = (int)it.next(); // 현재 순서의 데이터를 value에 저장. Iterator는 객체를 만들어 ArrayList의 데이터에 접근한다.
			if(value == 30) it.remove(); // value의 값이 30이면 ArrayList에서 삭제
		}
		
		for (int value : numbers) { // for문을 이용하여 ArrayList의 데이터를 순서대로 출력
			System.out.println(value);
		}
	}
}

 

 

'Computer Science > 자료구조with자바' 카테고리의 다른 글

배열과 리스트  (0) 2019.05.20
자료구조 공부 시작  (0) 2019.05.20
Comments