728x90
1. 프레임워크 vs 라이브러리
- 라이브러리 : 다른 개발자가 미리 만들어놓은 기능을 모아 놓은 것 => 오디오 라이브러리, 통계 라이브러리(대표적으로 파이썬의 pandas, numpy)
- 프레임워크 : 다른 개발자가 미리 만들어놓은 기능을 모아 놓은 것 + 개발하는 방식을 일정한 틀로 만들어 놓은 것
- 개발의 자유성은 떨어졌지만, 프로그램을 작성한 방식이 비슷하기 때문에 유지보수가 좋아짐.
- 자바에서는 대표적으로 spring 프레임워크가 있으며, spring 안에서 일정한 틀로 개발 가능 => MVC 패턴, bean 컨테이너에 객체 등록, IoC 와 DI 등
2. 컬렉션 프레임워크(Collection framework)
- 여러 객체(데이터)를 모아놓은 것을 의미 => 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
- 컬렉션을 쉽고, 편리하게 다룰 수 있는 다양한 클래스 제공(저장, 삭제, 검색, 정렬 등)
- 여기서의 객체란 '다수의 데이터' 를 의미한다고 생각하면 됨
- java.util 패키지에 포함 && JDK 1.2 부터 제공 => 이전에도 존재는 했으나 표준화가 안되어있어서 사용하기 힘들었음.
- 다수의 데이터를 저장할 수 있는 클래스(Vector, ArrayList, HashSet)
- 이중에서 가장 중요한 것은 List, Set, Map
인터페이스 | 특 징 |
List | 순서가 있는 데이터의 집합, 데이터의 중복을 허용 Ex) 대기자 명단 구현 클래스 : ArrayList, LinkedList, Stack, Vectior |
Set | 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. 일종의 집합 Ex) 양의 정수집합, 소수의 집합 구현 클래스 : HashSet, TreeSet |
Map | 키(Key) - 값(value) 의 쌍(pair) 으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. Ex) 우편번호, 지역번호(전화번호) 구현 클래스 : HashMap, TreeMap, Hashtable, Properties Session 저장소( key : sessionID - value : member 객체) |
3. List, Set, Map 인터페이스 메서드
1) List : 순서 O, 중복 O - ArrayList, Linkedlist
메서드 | 설 명 |
void add(int index, Object element) boolean addAll(int index, Collection c) |
지정된 위치(index)에 객체(element) 또는 컬렉션에 포함된 객체를 추가한다. |
Object get(int index) | 지정된 위치(index)에 있는 객체를 반환한다. |
int indexOf(Object o) int lastindexOf(Object o) |
지정된 객체의 위치를 반환한다(왼 -> 오) 지정된 객체의 위치를 역방향(마지막)부터 반환한다(오 -> 왼) |
Object remove(int index) | 지정된 위치(index)에 객체(element)를 저장한다 |
void sort(Comparator c) | 지정된 비교자(Comparator)로 List 를 정렬한다 |
List subList(int fromindex, int toindex) | 지정된 범위 fromindex 부터 toindex까지 에 있는 객체를 반환한다 |
2) Set : 순서 X, 중복 X - HashSet => 대부분 Collection 인터페이스의 메서드와 동일
집합과 관련된 메스드를 갖고 있음. 이에 따라 컬렉션에 변화가 있으면 true, 아니면 false 를 반환
메서드 | 설 명 |
boolean addAll(Collection c) | 지정된 Collection 의 객체들을 Collection 에 추가 => 합집합 |
boolean containsAll(Collection c) | 지정된 Collection 의 객체들이 Collection 에 포함되어 있는지 확인 => 부분집합 |
boolean removeAll(Collection c) | 지정된 Collection 에 포함된 객체를 삭제 => 차집합 |
boolean retainAll(Collection c) | 지정된 Collection 에 포함된 객체만 남기고 나머지는 Collection 에서 삭제 => 교집합 |
3) Map : 순서X, 중복 - 키는 중복 X , 값은 중복 O - HashMap, TreeMap
- Entry 란 key - value 한 쌍을 의미
메서드 | 설 명 |
void clear() | Map 의 모든 객체를 삭제 |
boolean containsKey(Object Key) | 지정된 Key 와 일치하는 Map의 Key 객체가 있는지 확인 |
boolean containsValue(Object Value) | 지정된 Value 와 일치하는 Map의 Value 객체가 있는지 확인 |
Set entrySet() | Map에 저장되어 있는 Key - Value 쌍을 Map.entry 타입의 객체로 저장한 Set 으로 반환한다. |
boolean equals(Object o) | 지정한 key 객체에 대응하는 value 객체를 찾아서 반환한다. |
set keySet() | Map 에 저장된 모든 Key 객체를 반환한다 |
Object put(Object key, Object value) | Map 에 value 객체를 key 객체에 연결(mapping)하여 저장한다 |
void putAll(Map t) | 지정된 Map 의 모든 key - value 쌍을 추가한다 |
Object remove(Object key) | 지정한 Key 객체와 일치하는 Key - value 객체를 삭제한다 |
int size() | Map 에 저장된 key - value 쌍의 개수를 반환한다 |
Collection values() | Map 에 저장된 모든 value 객체를 반환한다 |
'Java - 기본기' 카테고리의 다른 글
21. 접근제어자와 상속, 오버라이드 (0) | 2022.03.01 |
---|---|
18-2 메소드 : 메소드 반환 타입, 오버로딩, 매개변수, 호출방식 (0) | 2022.02.24 |
19. 오버로딩, 생성자, 기본 생성자, 생성자 this(), 참조변수 this (0) | 2021.12.09 |
18. 메소드 : 선언부와 구현부, 메서드 호출, return문, 반환값 (0) | 2021.10.26 |
17. 변수 선언위치에 따른 변수의 종류 : 클래스 변수 && 인스턴스 변수 (0) | 2021.10.26 |
댓글