JAVA 컬렉션 프레임워크가 뭔가요?

koom·2021년 7월 6일
0

JAVA

목록 보기
11/13

🤔 컬렉션 프레임워크가 뭘까요? 컬렉션 프레임워크는 왜 생겨났을까요?
자바에서 배열을 사용하다보니 이런 난관들에 부딪히게 되었습니다. 어떤 부분이었는지 살펴보도록 하겠습니다

● 한 번 선언된 배열의 길이를 마음대로 늘이거나 줄일 수 없다.

  1. 여기 아래 사탕을 담을 통이 5개 있습니다.
    – (자바에서 배열은 값을 정해놓고 시작합니다)

  2. 한 통에 하나씩 차례대로 사탕을 넣었죠

  3. 옆에 있던 친구가 사탕을 하나 주네요.

  4. 흠.. 고맙긴 하지만.. 이를 어쩌죠? 더 이상 사탕을 담을 공간이 없는걸요..?

배열을 쓰다 보니까 이런 문제점이 생기네요.
처음에 딱 정해진 배열의 공간 이상은 뭘 더 추가할 수가 없다는 문제점이요.


● 자바에서 배열의 빈 공간을 찾는데 시간이 소요된다.

  1. 배가 너무 고파서 주황색 맛 사탕과 보라색 맛 사탕을 먹었습니다.

그러니까 0번째 인덱스와 2번째 인덱스가 공석이 되었죠.
그 말은 다음에 누군가가 사탕을 주면 비어있는 자리에 사탕을 채워넣을 수 있다는 말이 됩니다.

근데 이거 좀 불편하지 않나요? 매번 비어있는 공간을 찾아서자리에 넣어야 하잖아요.
지금은 5칸이라 쉽게 할 수 있다는 생각이 들지만 1,000칸이 넘어가면요? 10,000칸은요? 10,000,000칸은요? 어느 자리가 비어있는지조차 찾기 어려워지겠죠.
이게 두 번째 문제점 입니다.


그래서 이런 문제점들을 해결하고자 컬렉션 프레임워크가 생겨났습니다.
"몇 개를 넣을지 정확히 모르는 경우가 있으니, 값을 넣으면 그 값을 담을 공간을 만들고, 값을 빼면 공간도 같이 빼버리자."라고 한 것이죠.
그럼 배열처럼 데이터를 넣기도 하고, 수정도 하고, 삭제도 할 수 있는 새로운 "무엇인가"가 필요하겠죠?
그 "무엇인가"가 바로 "컬렉션 프레임워크"입니다.

0개의 댓글