2008년 06월 03일
자바의 또 다른 배열 - Vector
이번에는 벡터에 관한 이야기를 해봅시다.
제목에서 자바의 또다른 배열이라고 제가 표현을 했습니다.
그 이유는 음..정확하게 배열이라고 할 수 있는지에 대해서는 정확히 모르겠지만
배열이라고 생각하는 편이 이해를 더 도울 수 있다고는 봅니다.
물론 배열하고는 다른점도 많겠지요.
그럼 일단 배열에 대해서 잠깐 이야기를 해 봅시다.
배열은 우리가 흔히 알기로는 같은 형태의 변수를 하나의 묶음으로 다루는 것이라고 하지요.
일일이 변수를 선언하지 않고 배열을 이용해서 같은 형태를 쉽게 생성해서 편리하지요.
그리고 값을 저장 할 때도 편하기도 합니다.
int a[] = new int[10];
이라고 생성을 한다면 10개의 int 형 변수를 저장하는 공간이 생기는 것이지요.
단점이 있다면 11개의 정수를 저장하려면 10개를 생성 했기 때문에 불가능하다는 것이겠지요.
이미 생성한 것은 한정적이기 때문에 다시 배열을 더 선언하는 방법으로 해야 하는 단점이 있습니다.
그럼 이제 배열과 비슷하지만 배열과는 조금 다른 벡터에 대해서 이야기를 합시다.
벡터는 10개의 정수형 변수를 벡터에 저장한다면 저장이 됩니다.
11개의 변수를 저장한다고 했을 경우에도 가능합니다.
그럼 11개의 데이터를 저장하는데는 배열이라면 11개의 배열을 선언해야겠지요.
그러나 벡터는 5개의 저장 공간을 마련해도 11개가 저장이 됩니다.
바로 이점이 배열보다 좋은 점이죠. 가장 기본적인 면에서 말하면 그렇습니다.
Vector vec = new Vector();
위와 같이 선언을 한다면 벡터는 10개의 공간을 생성합니다.
(위와 같이 한다면 기본으로 생성하는 것은 10개입니다.)
그런데 어떻게 11개의 데이터를 저장이 가능할까요?
그것은 바로 벡터는 더 많은 공간을 필요로 한다면 자동적으로 생성을 하는 특징이 있습니다.
10개의 공간에 11개의 변수를 저장한다면 벡터는 추가적으로 10개의 공간을 더 만들게 됩니다.
편리하지요?
그럼 배열과 비슷한 점은 무엇일까요?
백터는 이렇게 저장된 내용을 배열 처럼 0 부터 1, 2, 3, 4.. 이렇게 순번을 가지고 있지요.
자 그럼 여기까지 벡터의 기본에 대해서 이야기 했습니다.
그럼 벡터의 장점에 대해서 조금 더 이야기 해봅시다.
벡터는 10개의 데이터를 가지고 있을 때, 만약 5번째 데이터의 값을 지운다고 했을 경우에
5번 째 내용이 지워진다고 해서 중간에 데이터가 빈 벡터가 남아 있지는 않습니다.
배열이라면 그렇겠지만 벡터는 자동적으로 0부터 8번 까지 변수를 가지게 됩니다.
10개의 변수를 가지고 있을 떄는 0~9 까지가 존재했지요.
잘만 이용하면 참 편리하겠지요?
보통 많은 데이터를 벡터에 저장하게 되고 그 데이터를 수정 또는 삭제를 일부분 하고 난 뒤에
파일로 저장하거나 다른 곳에 옮기기가 편리합니다.
예를 들어 주소록의 정보를 입력 받아 저장하거나, 영어단어를 입력 받았을 경우를 생각해보면
편리하겠지요?
그럼 간단하게 벡터에 사용되는 메소드에 대해서 알아봅시다.
size() 메소드는 벡터의 길이를 나타냅니다.
10개의 변수가 저장된 벡터라면 백터.size()는 10 입니다.
add() 메소드는 벡터의 값을 저장 할 때 사용됩니다.
remove() 메소드는 벡터의 값을 지우고자 할 때 사용됩니다.
clear() 메소드는 벡터의 값을 전부 지울 때 사용됩니다.
remove()와 clear()는 비슷한 기능을 갖지만 조금 다릅니다.
그리고 나머지는 API를 보고 공부하시기 바랍니다.
확실히 크게 어렵지 않기 때문에 보면 다 이용이 가능합니다.
항상 그렇듯 프로그래밍은 직접 해보면서 이해를 하고 단순하게 생각 하기 보다는 논리적인 사고로 접근을 하시면
참 재미가 있다는 것을 알 수 있습니다.
그럼 벡터에 대한 기본 이야기를 이상 끝내도록하겠습니다.
내용이 좀 부실한 듯 하네요 ^^;
캄사합니다 ~
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 백터(Vector)... by 강창현
- 배열은 생각보다 단순하지 않아 - 배열 복습편. by 만성피로
- 배열!! by element
- 벡터 by 2Hot
- 밑의 백터 예제...배열 사용하지 않고... by Bluewins
# by | 2008/06/03 23:07 | 프로젝트 일지 | 트랙백 | 덧글(2)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]