일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- #자바 #로또
- 자바 #관리프로그램 기초
- spring framework
- 자바기본
- Spring 게시판 상세 조회
- spring 게시판 만들기
- Spring 게시판 수정삭제
- 데이터베이스
- Spring 게시판 작성
- Today
- Total
JeongseokDEV-SimpleU
[자바] 배열과 리스트 본문
배열과 리스트 비교
배열 - 데이터가 많아지면 관리의 필요성이 느껴짐 , score1, score2 .. 계속 변수 생성 할 수 없기에
생겨난 데이터를 하나로 묶을 수 있는 것
- 배열을 이용하면 하나의 변수에 여러 데이터를 담을수있고, 반복문과 결합 하면 많은정보도 효율적으로 처리가능
- 배열 인덱스는값에 대한 유일무이한 식별자.
자바의 배열은 기능적으로 한계가 많음 //
1. 배열의 크기를 배열을 생성할 떄 지정하는 것
2. 배열의 크기를 변경할 수 없는 것
3. 배열에서 설정된 엘리먼트의 개수를 알아낼 수 없는 것
그러나 데이터의 크기가 확정적일 때 배열을 사용하는 것이 메모리나 처리속도 면에서 좋음.
배열의 특징
1. 크기가 정해져 있고, 기능이 없음 ( 배열의 장점이자 단점 )
2. 인덱스를 가지며, 인덱스는 변경되지 않음. ( 데이터베이스의 기본키 개념 )
3. 데이터를 메모리에 순차적으로 나열 가능
4. 인덱스를 이용하여 빠르게 조회 가능
5. 인덱스를 이용하여 데이터를 가져오려면 데이터에 대한 인덱스 값이 고정 되어야 함
- 삭제된 엘리먼트의 공간이 그대로 남아서 데이터의 낭비가 심함
배열의 한계
1. 배열의 길이를 바꿀 수 없음
//// 인덱스가 중요한 경우는 배열을 사용, 인덱스가 중요하지 않는 경우에는 리스트를 사용 ////
리스트
- 리스트는 배열의 인덱스라는 장점을 버리고 빈틈없는 데이터의 적재라는 장점을 취한 데이터 스트럭쳐
- 리스트의 핵심은 엘리먼트들간의 순서, 따라서 리스트를 다른 말로는 시퀀스라고 부름
- 순서가 있는 데이터의 모임
- 리스트에서 인덱스는 몇 번째 데이터인가 정도의 의미를 가짐
( 배열-array에서의 인덱스의 값에 대한 유일무이한 식별자 )
- 빈 엘리먼트는 허용하지 않음
- 순차성을 보장하지 못함 그래서 special locality 보장이 되지 않아서 cache hit이 어려움
cache hit - cpu가 참조하고자 하는 메모리가 캐시에 존재하고 있을 경우
리스트 특징
- 처음, 끝, 중간에 엘리먼트를 추가/삭제 하는 기능
- 리스트에 데이터가 있는지를 체크하는 기능
- 리스트의 모든 데이터에 접근할 수 있는 기능
// 자바는 배열과 리스트를 모두 지원하고 두가지가 완벽히 분리되어 있음 //
자바에서는 배열 이외에 ArrayList와 LinkedList
인덱스를 이용해서 데이터를 가져오는 것이 빈번하다면 내부적으로 배열을 이용하는 ArrayList가 훨씬 빠름
하지만 데이터의 추가/삭제가 빈번하다면 LinkedList가 훨씬 효과적
ArrayList는 배열을 이용해서 리스트를 구현한 것을 의미
장점 : 내부적으로 배열을 사용하기 때문에 인덱스를 이용해서 접근하는 것이 빠름
단점 : 데이터의 추가와 삭제가 느림
데이터의 추가
ArrayList는 내부적으로 데이터를 배열에 저장 /
배열의 특성상 데이터를 리스트의 처음이나 중간에 저장하면, 이후의 데이터들이 한칸씩 뒤로 물러나야함
삭제
삭제도 추가와 유사하게 빈자리가 생기면 빈자리를 채우기 위해서 순차적으로 한칸씩 땡겨야 함
조회
인덱스를 이용하여 데이터를 가져오고 싶을 때 Array로 구현한 리스트는 속도가 매우 빠름 ....
'자바' 카테고리의 다른 글
[자바] (0) | 2020.02.11 |
---|---|
[자바]BubbleSort, SelectionSort, InsertionSort (0) | 2020.02.07 |
[자바]관리 프로그램 기초( 도서 ) (0) | 2020.02.07 |
[자바]채팅 프로그램(2) (0) | 2020.02.02 |
[자바]채팅프로그램(1) (0) | 2020.01.31 |