1. ArrayList
2. Iterator
3.HashMap
1.ArrayList
1) ArrayList?
Vector와 같이 가변크기의
배열을 구현하기 위해 만든 클래스
2) Vector 와의 차이??
자바 기초 배우기 29일 차 [ 제네릭, 컬렉션 - Vector ]
Vector와의 차이점 얘기 전에
Thread를 이해해야 하는데
아직 thread 단원을 들어가지 않은 관계로
간단하게 설명해보자면
프로그램이 작동하는 동안
하나의 작업명령을 실행하는데
Thread 단위로 프로그램을 짠다면
프로그램 내에서 작업이 동시다발적으로
일어나게 할 수 있는 것이다.
카카오톡을 예로 들면 내가 메시지를
송신하는 동안에 수신도 받을 수 있다
워드를 작성하는 동안에 프린트도 할 수 있고
맞춤법 검사도 동시에 일어나고 있다
이렇게 여러 가지에 동시 작업을
할 수 있게 해 준다.
이제 Vector와 ArrayList의 차이를 설명해보자면
Vector에 메서드에는 syncronized 키워드가
붙어 있는 것들이 보이고 ArrayList엔
보이지 않는다.
동시에 Thread로 add 3,5를 시키는 과정에서
작업 1: 컬렉션. add(3)
작업 2: 컬렉션. add(5)
syncronized 키워드가 add에 붙어 있다면? (Vector)
순서를 매겨주는 기능이 있어
동시 작업이 일어난다면, 접근한 것들을 순서대로 실행
syncronized 키워드가 add에 붙어있지 않다면? (ArrayList)
순서를 매겨주는 기능이 없어
동시 작업이 일어난다면, 충돌이 발생할 수 가있다.
= 데이터가 훼손되어서 3,5 중에 하나만 들어갈 수 도있다.
ArrayList는 동시 접근 시 데이터가 훼손될 가능성이 있으나
한 명만 접근할 때는
Vector처럼 번호표를 주지 않아도 돼서 Vector보다 훨씬 빠르다
3) 주요 메서드
- add(요소) : 맨 뒤에 해당 요소 추가
- add(위치, 요소) : 위치에 요소를 삽입
- addAll(컬렉션) : 맨 뒤에 컬렉션 추가
- get( 위치 ) : 위치에 있는 요소 가져오기
-size() : 전체 요소 개수 반환
-remove(위치) : 해당 위치에 있는 요소 삭제
-clear() : 전체 요소 삭제
4) 실습
Find Long Names.java
이름을 입력받아 ArrayList로 저장하고
그중 가장 긴 이름을 알려주는 코드를
짜 보자
Iterator
Iterator <E> 인터페이스
사용목적?
컬렉션에서 저장된 요소를 순차적으로 검색할 때 사용
사용방법?
Iterator <클래스 타입> it = 컬렉션 객체. iterator();
주요 메서드?
hasNext() : 다음 요소가 있으면 true 없으면 false
next() : 다음 요소 값 반환
*keypoint '순차적 검색'
보는 바와 같이 Itrator 객체 it를 활용하여
v벡터 안에 있는 요소들을 순. 차. 적으로 출력하였다
(for문 활용 x)
HashMap
HashMap <K, V>
*java.Util
Key - Value 쌍으로 저장하여, 탐색에 용이한 자료구조
K : key 키로 사용할 데이터 타입
V : value로 사용할 데이터 타입 지정
생성 방법
HashMap <Key, Value> h = new HashMap();
주요 메서드
삽입
put(key, value): key-value 쌍으로 해시 맵에 추가
가져오기
get(key) : 지정된 키에 연결된 값을 반환 없으면 null
삭제
remove(key) : key에 해당하는 값 삭제
clear() : 모든 요소 삭제
기타
keySet(): 모든 키를 Set이라는 컬렉션으로 받아냄
size() : 요소의 개수 반환
containKey(key) : 키가 있으면 true 없으면 false
containKey(value) : 값이 있으면 true 없으면 false
'Java > JAVA 문법' 카테고리의 다른 글
자바 기초 배우기 31,32일차 [ Thread 쓰레드 기본개념, Synchronized (동기화작업), wait / Notify ] (0) | 2020.01.05 |
---|---|
자바 기초 배우기 29일차 [ 제네릭, 컬렉션 - Vector ] (0) | 2020.01.05 |
자바 기초 배우기 28일차 [ 예외처리, TryCatch문 ] (0) | 2020.01.05 |
자바 기초 배우기 27일차 [ Math클래스, Calendar클래스 ] (0) | 2020.01.05 |
자바 기초 배우기 26일차 [ String, StringBuffer, StringTokenizer / StringClass 3종세트 ] (0) | 2020.01.05 |