안치현의 블로그
배열과 리스트 본문
출처 : https://programmers.co.kr/learn/courses/17
배열을 선언하는 방법
자바에서 배열은 객체이다.
int[] numbers = new int[4];
int[] numbers = new int[]{10, 20, 30, 40};
int[] numbers = {10, 20, 30, 40};
배열의 크기
length 라는 인스턴스 변수를 사용하면 배열의 크기를 알 수 있다.
numbers.length
리스트
리스트 자료구조를 이해하는데 있어 중요한 키워드는 순서, 중복허용.
데이터는 순서대로 저장되고 중복을 허용한다.
배열은 데이터의 인덱스가 중요하다.
리스트는 데이터의 순서가 중요하다.
배열 VS 리스트
새로운 데이터를 추가할 때
배열은 기존의 데이터를 덮어쓰고
리스트는 원하는 자리에 데이터를 추가한다.
기존의 데이터를 삭제할 때
배열은 빈 공간이 생기고
리스트는 빈 공간이 생기지 않는다.
인덱스는 배열에서 데이터에 대한 식별자 역활을 하고 리스트에서는 몇 번째 데이터인지를 나타낸다.
리스트의 기능
- 처음, 끝, 중간에 엘리먼트를 추가/삭제하는 기능
- 리스트의 모든 데이터에 접근할 수 있는 기능
- 리스트에 데이터가 있는지를 확인하는 기능
여러 언어에서의 리스트
C
리스트 라이브러리 지원안함
직접 구현하거나 다른 사람이 작성한 라이브러리를 사용해야한다.
JavaScript( c 패밀리 랭귀지)
numbers = [10, 20, 30, 40, 50];
numbers.splice(3,1); // index가 3인 위치부터 1개 값을 삭제한다.
배열이 리스트
Python
numbers = [10, 20, 30, 40, 50];
numbers.pop(3); //index 3의 값을 삭제하고 뒤 값을 이어 붙인다.
리스트가 배열
최근의 언어는 리스트를 기본적으로 지원한다.
Java
배열과 리스트가 독립적으로 있다.
배열
int[] numbers = {10, 20, 30, 40, 50};
리스트
ArrayList numbers = new ArrayList();
배열과 리스트 모두 지원
LinkedList numbers = new LinkedList();
ArrayList numbers = new ArrayList();
리스트를 두 개 지원!
array list 추가/삭제 느림, 인덱스 조회 빠름
linked list 추가/삭제 빠름, 인덱스 조회 느림
하나를 취하면 다른 하나는 잃게 된다.
데이터 스트럭쳐는 언어마다 다르다.
'Computer Science > 자료구조with자바' 카테고리의 다른 글
ArrayList 사용하기 (0) | 2019.05.20 |
---|---|
자료구조 공부 시작 (0) | 2019.05.20 |