17일차
제네릭 프로그래밍
-일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용하는 프로그래밍 기법
-제네릭은 컬렉션 라이브러리에 많이 사용
class Store<T> // T는 타입을 의미합니다.
private T data;
public void set ( T data )
컬렉션
-자바에서 자료구조를 구현한 클래스
-자료 구조로는 리스트, 스택, 큐, 집합, 해쉬테이블 등이 있다. ( 자료구조 : 데이터 집합 )
리스트
순서가 있는 데이터들의 집합 ( list 가변길이 배열 )
인덱스로 구별
-ArrayList : 필요한 배열만큼 한칸씩 계속해서 배열을 만듬 필요없으면 삭제 (탐색유리)
데이터가 삽입 삭제 될때 마다 새로운 배열을 생성
-LinkedList : 기본적으로 두칸씩 만들어서 두번째칸이 다음 배열의 주소를 기억함 (삽입, 삭제, 수정 유리)
데이터가 삽입 삭제될때 해당 칸만 추가/ 삭제하고 기억위치만
스택
순서있는 데이터들의 집합을 LIFO방식으로 관리하는 자료구조
큐
순서가 있는 데이터들의 집합을 FIFO방식으로 관리하는 자료구조
집합
순서가 없는 데이터들의 집합 ( 순서가 없어서 중복이 없음 )
집합(set)
원소의 중복을 허용하지 않는다.
set의 인터페이스 구현 방법
HashSet
-해쉬 테이블에 원소를 저장하기 때문에 성능면 가장 우수, 원소들의 순서가 일정하지 않은 단점.
Set은 집합을 나타내는 자료구조로 중복된 원소를 가지지 않는다
종류로는 HashSet, TreeSet, LinkedHashSet이 있고
가장 많이사용하는 것은 HashSet입니다. 해쉬 테이블에 원소를 저장하기 때문에 성능면에서 가장 우수하다.
하지만 원소들의 순서가 일정하지 않은 단점이 있다.
+ 해쉬테이블은 key와 Value 쌍으로 이루어진 데이터를 저장할 수 있는 자료구조
객체간의 비교 기준
equals 와 hashCode
Map
-키(key)에 값(value)이 매핑된다.
스택과 큐
스택 : 순서 있는 데이터들의 집합을 LIFO방식으로 관리하는 자료구조
큐 : 순서가 있는 데이터들의 집합을 FIFO방식으로 관리하는 자료구조