쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.
Stack
- LIFO(Last Input First Output) : 마지막에 들어간 데이터가 먼저 나오는 자료구조
- java.util 패키지에서 제공
- Vector 자식( FIFO 기능, 동기화 )이지만 Vector에서 제공하는 기능은 사용하지 않는다.
- push() : 값을 넣어줌
- pop() : stack에서 값이 사라진다.
- empty() : stack에 값이 비었니?
- 히스토리를 남겨야하는 프로그램에서 사용
Set
- 데이터가 순차적으로 입력되지 않으며, 중복값을 저장하지 않는다.
- 검색의 기능이 없다.
// 1. 생성
Set<E> set = new Hashset<E>();
// 2. 값 추가 - 이전의 방에 중복된 값이 있는 지 확인 후 추가
set.add( 값 );
// 3. 크기 검색
set.size();
// 4. 삭제
set.remove( 값 );
// 5. 배열 복사
set.toArray( 배열명 );
// 6. 값 얻기 - 검색의 기능이 없다.( get이 없음 )
// Iterator를 사용
// Iterator - java.util 패키지에서 제공
// set(List)의 제어권을 받아 포인터를 사용해 검색을 수행
// 6-1. 제어권 이양
iterator<E> ita = set.iterator();
// 6-2. 데이터가 존재하는 지?
while( ita.hasNext() ){
// 6-3. 포인터가 있는 위치에서 값을 가져오고 다음 요소 앞으로 이동
ita.next();
}
Map
- 키와 값의 쌍( entry )으로 이루어진 데이터형
- 키는 중복될 수 없고 값은 중복될 수 있다.
- 키를 사용하여 값을 얻을 때 사용
- Hashtable - 11개의 행이 기본 생성 - 속도 느림 ( 동기화O, 멀티쓰레드 동시 접근 x )
- HashMap - 16개의 행이 기본 생성 - 속도 느림( 동기화x, 멀티쓰레드 동시 접근 o )
- 데이터가 전체 행에 약 75퍼 정도 차 있을 때 검색 속도가 가장 빠르다.
// 1. 생성
Map<K,V> map = new Hashtable<K,V>();
Map<K,V> map = new HashMap<K,V>();
// 2.사용
// 값 추가 - 키가 없다면 값이 추가, 키가 존재하면 덮어 쓴다.
// 값은 순차적으로 입력되지 않는다.
map.put( 키, 값 );
// 3. 행의 수( entry수 )
map.size();
// 4. 키를 사용하여 값을 얻기, 키를 넣지 않으면 null이 반환
map.get( 키 );
// 5. 맵에서 모든 키를 얻기 - 맵의 입력된 값을 검증해야 할 때
Set<E> keys = map.keySet();
// 6. 맵에 키가 존재하는 지
boolean flag = map.containsKey( 키 );
// 7. 맵 삭제- 그 키를 가진 엔트리 삭제( 키,값 )
map.remove( 키 );
// 맵 모두 삭제
map.clear();
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0102/Swing Component (0) | 2023.01.02 |
---|---|
1229/AWT, Swing (0) | 2022.12.29 |
1227/Calendar, JCF (0) | 2022.12.27 |
1226/문자열, 날짜 클래스 (0) | 2022.12.26 |
1223/클래스 사용 (0) | 2022.12.23 |