상세 컨텐츠

본문 제목

[매일메일] JCF 자료구조의 초기 용량을 지정하면 좋은 점이 무엇인가요?

본문

JCF라는 이름은 일단 처음 들어봤는데 앞에 J가 붙으면 보통 Java 꺼 였던 거 같다.

 

JCF는 Java Collections Framework라고 한다.

요소를 넣고, 찾고, 출력한다. 이 상황에서의 목적과 방향은 똑같다. 하지만, 세부적으로 어떤 데이터 방식이냐에 따라서 어떤 함수를 호출하냐는 다를 것이다.

Vector는 addElement()이고, Hashtable은 put()이라 한다.

자바 개발자들은 이런 문제 해결을 위해 공통 인터페이스를 설계하였다. (찾아본 블로그 말로는, Vector, Hashtables는 레거시 클래스가 되어 더이상 사용하지 않는다고 한다.)

 

JCF는 코드 재사용이 쉽고, 관련 없는 API 간의 상호 운용성을 제공한다. (다 읽어봐도 결국은 재사용이 중요한 거 같다)

JCF의 ArrayList를 기준으로 가변 용량을 사용한다고 하면, 용량이 다 차면 리사이징이 발생하여 최종 capacity가 변화한다고 한다.

하지만 new ArrayList(MAX)로 초기 용량을 설정하면 불필요한 리사이징없이 고정된다.

(근데 의문인게, 용량이 가득찬 상황이면 리사이징을 해야하는 거 아닌가? 단순히 메모리를 줄인다고 좋아해야하는건가)

-> 여기서 포인트는 내가 쓸 데이터의 양을 정확히 알 때, 정확한 크기의 메모리를 할당하여 사용하게 되면 메모리를 맞추는 리사이징의 횟수를 0번 또는 굉장히 낮게 할 수 있다는 것이다. (그냥 python기준으로는 collections 라이브러리 같은 느낌인가)

 

로그 팩터 (Load Factor)란, 특정 크기의 자료 구조에 데이터가 어느 정도 적재되었는지 나타내는 비율

가변 자료구조에서 크기를 증가시켜야 하는 임계점을 계산하기 위해 사용

 

 

관련글 더보기