728x90
- 알고리즘 문제 풀기
https://jinjinjincode.tistory.com/214
위의 문제를 풀면서 자바의 자료구조에 대해 좀 더 이해할 필요성을 느꼈기에 한 번 정리해보려고 한다.
배열 (Array)
- 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
- 정해진 크기의 메모리를 할당받아 사용
- 저장 공간이 연속적
- 식별자(인덱스)가 존재
- String 배열이라면?
- 배열에 실제 객체가 아닌 객체의 주소를 연속적으로 저장한 것
- 참고로 String이 char 배열과 다른 점은 String 객체는 변경할 수 없다는 것
- 배열의 장단점
- 장점
- 구현이 쉬움
- 검색 성능이 좋음
- 단점
- 자료의 삽입과 삭제에 비효율적
- 생성할 때 지정한 크기를 바꿀 수 없음
- 메모리의 재사용이 불가능
- 장점
ArrayList
- 순서가 있는 데이터의 집합으로 중복을 허용
- 크기를 미리 할당할 필요가 없음(저장공간 크기가 가변적)
- 식별자(인덱스)가 없음
- 중간에 빈 공간을 허용하지 않음
- 참조 자료형으로만 선언 가능
- Array를 사용할 때보다 오버헤드가 발생하나 List의 메소드를 사용 가능
'TIL' 카테고리의 다른 글
[231115] HttpMediaTypeNotAcceptableException 에러 해결 (0) | 2023.11.15 |
---|---|
[231113] Spring 입문 개인과제 해설 (0) | 2023.11.13 |
[231106] 알고리즘 문제, 스탠다드반 과제 (0) | 2023.11.06 |
[231103] Spring 개인과제 (0) | 2023.11.03 |
[231102] 배열을 리스트로, 스프링 bean과 싱글톤 패턴 (0) | 2023.11.02 |