순차리스트
순차리스트란 리스트 구현의 한 방법으로 논리적인 순서와 물리적인 순서대로 메모리에 연속하여 저장하는 자료구조이다. [1]
목차
개요[편집]
순차 리스트는 데이터를 삽입하거나 삭제하면 연속적인 물리적 위치를 유지하기 위해 원소를 옮기는 추가 작업을 한다. 배열로 구현하기 때문에 인덱스를 통해 원소를 탐색하기에 용이하다. [1] ArrayList는 인터페이스를 상속받은 클래스로 일반적인 배열과 같은 순차리스트이며 순차성이 존재하기 때문에 중간에 데이터를 삽입하거나 삭제하는 과정이 불편하다. [2]
순차 리스트 장·단점[편집]
장점 단점 * 정렬 기능을 사용하기 용이하다.
* 데이터를 특정 기준으로 관리하기 쉽다.
* 인덱스 값에 대한 유일무이한 식별자를 가진다.(조회가 편리하다)* 중간에 데이터를 삭제,삽입하기가 힘들다.
* 순서상에 대한 보장 처리를 하기위해서 삽입/삭제가 이루어지는 경우 데이터를 한칸씩 밀어줘야 한다.
순차리스트(ArrayList)사용법[편집]
ArrayList[편집]
ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는점등이 유사하다. 한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다는 특징을 가지고 있다. [3]
ArrayList 선언[편집]
ArrayList list = new ArrayList(); //타입 미설정 Object로 선언된다. ArrayList<Student> members = new ArrayList<Student>(); //타입설정 Student객체만 사용가능 ArrayList<Test> num = new ArrayList<Test>(); //타입설정 int타입만 사용가능 ArrayList<Test> num2 = new ArrayList<>(); //new에서 타입 파라미터 생략가능 ArrayList<Test> num3 = new ArrayList<Test>(10); //초기 용량(capacity)지정 ArrayList<Test> list2 = new ArrayList<Test>(Arrays.getList(1,2,3)); //생성시 값추가
ArrayList 값 추가[편집]
ArrayList에 값을 추가하려면 ArrayList의 add(index, value) 메소드를 사용한다. 인덱스를 생략하면 ArrayList 맨 뒤에 데이터가 추가되며 index중간에 값을 추가하면 해당 인덱스부터 마지막 인덱스까지 모두 1씩 뒤로 밀려난다.[3]
ArrayList<Test> list = new ArrayList<Test>(); list.add(2); //값 추가 list.add(null); //null값도 add가능 list.add(1,5); //index 1뒤에 5 삽입
ArrayList 값 삭제[편집]
ArrayList에 값을 제거하려면 ArrayList의 remove(index) 메소드를 사용한다. remove()함수를 사용하여 특정 인덱스의 객체를 제거하면 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨지며, 모든 값을 제거하려면 clear 메소드를 사용하면 된다.[3]
ArrayList<Test> list = new ArrayList<Test>(Arrays.getList(1,2,3)); list.remove(1); //index 1 제거 list.clear(); //모든 값 제거
ArrayList 값 출력[편집]
ArrayList의 get(index) 메소드를 사용하면 ArrayList의 원하는 index의 값이 리턴되며, 전체출력은 대부분 for문을 통해서 출력한다.[3]
ArrayList<Test> list = new ArrayList<Test>(Arrays.getList(1,2,3)); System.out.println(list.get(0)); //0번째 index 출력 for(Test i : list) { //for문을 통한 전체출력 System.out.println(i); }
ArrayList 값 검색[편집]
ArrayList의 contains(value) 메소드를 사용하여 값을 검색한다. 만약 값이 있다면 true, 값이 없다면 false가 리턴된다. 값을 있는 index를 찾으려면 indexOf(value) 메소드를 사용하면 되고 값이 없다면 -1을 리턴한다.[3]
ArrayList<Test> list = new ArrayList<Test>(Arrays.getList(1,2,3)); System.out.println(list.contains(1)); //list에 1이 있는지 검색 : true System.out.println(list.indexOf(1)); //1이 있는 index반환 없으면 -1
각주[편집]
참고자료[편집]
- 순차리스트〈리스트 이해하기〉,《Bright Dev Archive》, 2019-04-14
- 순차리스트 특징〈array list〉,《미쳐날뛰는 프로그래머》, 2019-10-19
- 어레이리스트〈arraylist사용법〉,《코딩팩토리》, 2020-05-22
같이 보기[편집]