Develop

7일차_Collection, ArrayList, LinkedList, Iterator 등 본문

백엔드/KDT_Programmers

7일차_Collection, ArrayList, LinkedList, Iterator 등

230801 2025. 3. 14. 00:42

안녕하세요!

어제 7일차 (2주 3일차) 였는데, 과중한 공부탓에 저녁먹고 잠들어버렸습니당

그래서 8일차에 두개를 씁니다 ㅠㅠㅋ

 

공부 내용

오늘 부터는 공부했던 내용을 이해한 내용 짧게 적어보려 합니다.

 

Collection Framework

  • 데이터군을 저장하는 클래스들을 표준화한 설계를 뜻 함
  • 데이터 그룹은 List, Set, Map 3개 인터페이스로 구분 됨
    • List : 중복 허용o, 저장 순서 유지o
    • Set : 중복 허용x, 저장 순서 유지x
    • Map : key-value 형태로 저장

 

ArrayList

  • List 인터페이스 구현 시 사용
  • Object의 배열을 이용해서 데이터를 순차적으로 저장
  • Index로 원하는 요소를 찾아감
    • 읽는 속도가 빠른 대신 추가/삭제가 어려움
  • 배열의 요소 삭제 시, 삭제할 객체 바로 아래에 있는 데이터를 한칸씩 위로 복사해서 덮어쓰는 방식으로 처리하며, 마지막 데이터라면 복사할 필요없이 null로 변경하면 됨

 

LinkedList

  • 배열의 단점을 보완하기 위해 고안된 자료구조
    • 배열 크기 변경 못하는 점, 중간에 데이터 추가/삭제 시 시간소요
  • 불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성
  • 배열의 요소 삭제 시, 삭제하고자 하는 요소의 이전요소가 다음요소를 참조하도록 변경하면 됨
    • 배열처럼 데이터 이동 시 복사하는 과정이 없기때문에 처리속도가 매우 빠름

 

Iterator

  • Collection 에 저장된 요소를 접근하는데 사용되는 인터페이스
    • Iterator를 이용해 컬렉션의 요소를 읽어오는 방법을 표준화 했기때문에, 코드의 재사용성이 높아짐
  • Iterator()를 호출해 Iterator를 얻은 다음 반복문(주로 while 문)을 사용해서 컬렉션 클래스의 요소들을 읽어옴