휴지통/알고리즘 & 자료구조
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
}
}