자바의 정석 복습하기(컬렉션)

bitna's study note·2022년 6월 6일
0

자바

목록 보기
104/119

6월 6일 복습하기

1.컬렉션 프레임웍
컬렉션:여러객체(데이터)를 모아 놓은것
프레임웍:표준화 정형화된 체계적인 프로그래밍 방식+라이브러리
컬렉션 프레임웍:컬렉션(다수의 객체)를 다루기 위한 표준화된 프로그램방식
컬렉션을 쉽고 편리하게 다룰 수 있는(저장,삭제,검색,정렬) 다양한 클래스를 제공

2.컬렉션 프레임웍 핵심 인터페이스
(1)List: 순서가 있고, 중복을 허용
예)대기자 명단
(2)Set: 순서가 없고, 중복 허용안함
예)집합, 주머니안에 공
(3)Map:키와 값이 쌍으로 이뤄진 데이터 집합
순서 안중요, 키는 중복허용 안됨, 값은 중복허용됨

3.Collection 인터페이스
Collection은 List와 Set의 상위인터페이스 이다.

4.List인터페이스

5.Set인터페이스

6.Map인터페이스

7.ArrayList
ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일
Vector는 동기화 처리됨, ArrayList는 동기화 안됨
List인터페이스를 구현하므로 저장순서가 있고, 중복허용됨
데이터의 저장공간으로 배열을 사용한다.

8.ArrayList에는 객체만 저장 가능하다.
ArrayList에는 기본형을 쓸수 없지만 컴파일러의 오토박싱 기능으로
기본형을 참조형으로 변환하여 쓸수 있음.

9.ArrayList의 중간데이터 삭제와 삽입
데이터를 삭제하고 뒤에 있던 애들이 한칸씩 당겨서 앉음(데이터 복사와 삭제)
한칸씩 이동이 끝나고 맨마지막데이터는 null로 처리
데이터가 삭제되어 데이터 size의 값을 감소시킴

삽인은 그반대로
데이터를 삽입하면 뒤로 한칸씩 물러나 앉음(데이터 복사와 삭제)
이동이 끝나면 데이터 size의 값을 증가 시킴

이때 데이터의 이동과정이 매우 처리가 오래걸리므로 조심해야 한다.

10.remove(1) 인덱스1 내용 삭제
remove(new Integer(1)) 숫자1을 삭제

11.LinkedList
배열의 장,단점
장점:배열은 구조가 간단하고 데이터를 읽는데 걸리는 시간이 짧다.
단점:크기를 쉽게 변경할 수 없다.
배열중간에 데이터를 추가/삭제시 시간이 많이 걸린다.

배열의 단점을 보완하기 위해 LinkedList가 나옴
LinkedList는 기차를 연결해 놓은것처럼 서로서로 손을 잡고 있는 모양새.
불연속적이기 때문에 데이터 접근성이 나쁨.

12.스택과 큐
스택은 밑이 막힌 상자의 모양새.
마지막에 저장된 것을 제일 먼저 꺼내게 된다. LIFO구조. 배열에 적합.
큐는 줄서기와 같은 모양새.
제일 먼저 저장한걸 먼저 꺼낸다. FIFO 구조. 링크드리스트에 적합.

13.Iterator,ListIterator,Enumeration(old버젼)
컬렉션에 저장된 데이터를 읽어오는데 사용되는 인터페이스
(1)Iterator 객체를 먼저 생성
Iterator it=참조변수.iterator();
(2)hasNext(),읽어올 요소가 있는지 확인하고
(3)next(),읽어온다.
ListIterator는 다음요소와 이전요소 양방향을 읽어올수있다.접근성의 향상.

14.Iterator목적
컬렉션 자료구조마다 저장되어 있는 방법이 다른데,
이것을 아래와 같이 표준화 하기 위함.
(1)Iterator 객체를 먼저 생성
Iterator it=참조변수.iterator();
(2)hasNext(),읽어올 요소가 있는지 확인하고
(3)next(),읽어온다.

15.Arrays
배열을 다루기 편리한 메서드 제공
(1)toString()-배열의 출력
(2)copyOf(),copyOfRange()-배열의 복사
(3)fill(),setAll()-배열채우기
(4)sort()-정렬
(5)binarySearch()-이진검색,정렬되어 있을때 사용해야함. 그래서 sort()와 같이 쓰임.
순차검색:하나씩 비교하면서 검색
이진검색:정렬이 되어 있다는 가정하에 반으로 나눠가면서 비교하면서 범위줄이기
(6)deepToString()-다차원배열의 출력
(7)deepEquals()-다차원배열의 비교
(8)asList(가변 매개변수)-배열을 List로 변환
읽기전용,추가 안됨.

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보