본문 바로가기
TIL

[231109] Java 배열과 ArrayList

by 진진리 2023. 11. 9.
728x90
  • 알고리즘 문제 풀기

https://jinjinjincode.tistory.com/214

 

[프로그래머스] 숫자의 표현(Java)

https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

jinjinjincode.tistory.com

 

위의 문제를 풀면서 자바의 자료구조에 대해 좀 더 이해할 필요성을 느꼈기에 한 번 정리해보려고 한다.

 

 

배열 (Array)

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
  • 정해진 크기의 메모리를 할당받아 사용
  • 저장 공간이 연속적
  • 식별자(인덱스)가 존재
  • String 배열이라면?
    • 배열에 실제 객체가 아닌 객체의 주소를 연속적으로 저장한 것
    • 참고로 String이 char 배열과 다른 점은 String 객체는 변경할 수 없다는 것
  • 배열의 장단점
    • 장점
      1. 구현이 쉬움
      2. 검색 성능이 좋음
    • 단점
      1. 자료의 삽입과 삭제에 비효율적
      2. 생성할 때 지정한 크기를 바꿀 수 없음
      3. 메모리의 재사용이 불가능

 

ArrayList

  • 순서가 있는 데이터의 집합으로 중복을 허용
  • 크기를 미리 할당할 필요가 없음(저장공간 크기가 가변적)
  • 식별자(인덱스)가 없음
  • 중간에 빈 공간을 허용하지 않음
  • 참조 자료형으로만 선언 가능
  • Array를 사용할 때보다 오버헤드가 발생하나 List의 메소드를 사용 가능