자바/자바의정석

코딩공부 71일차: 자바의 정석 / 자바의 정석 121, 122강 / 11장 컬렉션 프레임웍

김발자~ 2022. 10. 9. 23:57
반응형

*10장부터는 자바의정석2권

 

개발 공부 71일차

자바의 정석 기초편 강의

https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

 

총 171개의 강의로 구성되어 있다

총 강의 시간은 80시간 정도

 

 

강의는 기초편을 기준으로 제작되어 있지만,

http://www.yes24.com/Product/Goods/24259565

 

Java의 정석 - YES24

최근 7년동안 자바 분야의 베스트 셀러 1위를 지켜온 `자바의 정석`의 최신판. 저자가 카페에서 12년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 쓴 책. 뿐만 아

www.yes24.com

링크로 첨부한 자바의 정석 3판으로도 무리가 없다는 댓글이 있어 그대로 진행

 

 

 

 

 


ch 11 - 7~11 ArrayList

(3판 2권 기준 584~595쪽)

https://www.youtube.com/watch?v=_2e-cgwMOyc&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=121 


 

1.2 ArrayList

-ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일, Vector는 자체적으로 동기화처리
-List인터페이스를 구현하므로, 저장 순서가 유지되고 중복을 허용
-데이터의 저장공간으로 배열을 사용한다(배열 기반)

ArrayList의 메서드
생성자: ArrayList() / ArrayList(Collection c) / ArrayList(int initialCapacity)
추가
삭제
검색
(584, 585에 표로 정리)

585쪽 예제 11-1
list1.add(5) 로 적어도 autoboxing에 의해 new Integer(5)로 변환된다
remove에서는 저렇게 쓰면 인덱스5에 있는 값이 사라지므로 new Integer(삭제할 숫자)로 잘 적어야 한다

삭제, 추가 과정 그림(594쪽)

*Java API 소스 보기 - /jdk설치경로/src.zip

 

 

 


ch 11 - 12~14 LinkedList

(3판 2권 기준 596~쪽)

https://www.youtube.com/watch?v=1ey5QpqbapU&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=122 


 

1.3 LinkedList

배열의 장단점
장점: 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근시간,access time)이 짧다
단점1: 크기를 변경할 수 없다
-크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야 함(①더큰배열생성, ②배열복사, ③참조변경)
단점2: 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다
-데이터를 추가하거나 삭제하기 위해 다른 데이터를 옮겨야 함
-그러나 순차적인 데이터 추가(끝에 추가)와 삭제(끝부터 삭제)는 빠르다 (데이터 이동이 없으므로)

LinkedList는 배열의 단점을 보완
-배열과 달리 불연속적으로 존재하는 데이터를 연결(link)
 -데이터 삭제: 단 한 번의 참조변경만으로 가능
 -데이터 추가: 한 번의 Node 객체생성과 두 번의 참조변경만으로 가능

 -링크드 리스트: 연결리스트. 데이터 접근성이 나쁘다
 -더블리 링크드 리스트: 이중 연결리스트. 접근성 향상
 -더블리 써큘러 링크드 리스트: 이중 원형 연결리스트


ArrayList(배열기반) vs Linked(연결기반) - 성능 비교 (600, 601쪽)
①순차적 데이터 추가/삭제 - ArrayList
②비순차적 데이터 추가/삭제 - LinkedList
③접근시간(access time) - ArrayList

 

 

 


 

반응형