안치현의 블로그

배열과 리스트 본문

Computer Science/자료구조with자바

배열과 리스트

chihyun 2019. 5. 20. 12:00

출처 :  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); // index3인 위치부터 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
Comments