본문 바로가기
휴지통/알고리즘 & 자료구조

ArrayList

by 신재권 2021. 7. 14.
package review1;

import java.util.ArrayList;
import java.util.Collections;

public class ArrayList02 {

	/*ArrayList의 접근 시간은 LinkedList에 비해 빠르다. 
	하지만 LinkedList에 비해 ArrayList는 데이터의 추가/삭제가 느리다.
	순차적인 추가 삭제는 더 빠르다. (데이터들의 주소가 붙어있기 때문에)
	비효율적인 메모리를 사용해야 한다.*/
	
	public static void main(String[] args) {
		ArrayList<Integer> data_list = new ArrayList<Integer>();
		
		//데이터 추가
		data_list.add(3);
		System.out.println(data_list); //[3]
		data_list.add(2);
		System.out.println(data_list); //[3, 2]
		// ArrayList는 자동으로 뒤에 추가된다. 
		data_list.add(1,5);  //원하는 index에 삽입 가능 , 데이터를 뒤로 한칸씩 미룬다.
		System.out.println(data_list); //[3, 5, 2]
		data_list.add(4); 
		data_list.add(7);
		System.out.println(data_list); //[3, 5, 2, 4, 7]
	
		//데이터 변경 
		data_list.set(0, 1); //원하는 index의 값을 변경할 수 있다.
		System.out.println(data_list); //[1, 5, 2, 4, 7]
		
		//데이터 읽어오기 (원하는 인덱스) -> 값 반환
		System.out.println(data_list.get(3)); //3번 인덱스에 있는 4가 읽어진다.
		
		//데이터 읽어오기 (원하는 값) -> 인덱스 반환
		System.out.println(data_list.indexOf(4)); //데이터 4가 위치한 자리 index 3번이 반환된다.
		System.out.println(data_list.indexOf(8));  //없는 데이터 삽입시 -1반환
		
		//[1, 5, 2, 4, 7]
		//데이터가 있는지 확인하기 true & false
		System.out.println(data_list.contains(1)); //true 
		System.out.println(data_list.contains(8)); //false
		
		//데이터 삭제하기 (원하는 인덱스)
		System.out.println(data_list.remove(0)); //0번 인덱스에 있는 데이터 삭제 , 삭제된 데이터는 반환
		System.out.println(data_list); //[5, 2, 4, 7] ,삭제시 빈공간을 알아서 채워줌
		
		//데이터 정렬 
		Collections.sort(data_list);
		System.out.println(data_list);
		
		//데이터 갯수 확인
		System.out.println(data_list.size()); //4
		
		//배열 비우기 
		data_list.clear();
		System.out.println(data_list);
		
		//데이터가 비어있는지 확인 
		System.out.println(data_list.isEmpty()); //true


	}
	
	

}

'휴지통 > 알고리즘 & 자료구조' 카테고리의 다른 글

Single Linked List  (0) 2021.07.14
Double Linked List  (0) 2021.07.14
백준 1152  (0) 2021.07.14
백준 1157  (0) 2021.07.14
백준 2675  (0) 2021.07.14