본문 바로가기
Java/JAVA 문법

자바 기초 배우기 30일차 [ 컬렉션 - ArrayList Iterator, HashMap ]

by lchit 2020. 1. 5.

1. ArrayList

2. Iterator

3.HashMap

1.ArrayList

1) ArrayList?

Vector와 같이 가변크기의

배열을 구현하기 위해 만든 클래스

2) Vector 와의 차이??

 

https://lchit.tistory.com/45

 

자바 기초 배우기 29일차 [ 제네릭, 컬렉션 - Vector ]

1. 제네릭 ​ 2. 컬렉션 -Vector ​ ​ ​ ​ ​ 1. 제네릭 ​ [ 제네릭이란? ] 클래스 구현 시 클래스명 뒤에 , , 등 < 알파벳 >이 포함한 기법 클래스 객체 생성 시 여러 자료형이 올 수 있도록 구현..

lchit.tistory.com

자바 기초 배우기 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