JAVA

[JAVA] 튜터링 10일차! (2021-08-04)

HJ39 2021. 8. 6. 00:17

튜터링 10일 차에는 제네릭과 컬렉션의 개념 , Iterator , Vector , ArrayList , HashMap , Collections을 배웠다.

C++에서 살짝 맛보기(?) 느낌으로 공부를 했었는데 자바에서 다시 보니 반가운 느낌이 들었다.

제네릭과 컬렉션

Iterator

Vector

ArrayList

HashMap

Collections

 

 

 


 

 

 

  • 제네릭과 컬렉션

제네릭이란 우리가 무언가를 선언할 때 직접적으로 타입을 선언해 주어야 했지만 제네릭은 타입을 여러 종류를 쓸 수 있다. 즉, 일반화시키는 도구라고 정의하면 된다.

 

컬렉션은 C++에서 Container과 비슷한 개념이라고 생각하면 된다. 크기 제한이 없는 배열로서 사용할 수 있다는 장점이 있고 단점으로는 데이터의 크기를 예측할 수 없는 응용프로그램에서 사용하기 어렵다

 

 


 

 

  • Iterator

컬렉션을 순차적으로 탐색하는데 쓰인다.

ex)

Iterator <Integer> it = v.iterator();

 

 

 

 


 

 

  • Vector 

벡터는 자동적으로 배열의 크기를 조절해 준다.

요소 삽입시 그 자리에 존재했던 데이터를 뒤로 1칸씩 이동시킨다.

삽입, 삭제, 이동이 자유롭다.

Vector <클래스명> Vector <클래스명> 이름 = new Vector <클래스명>();

Vector 제네릭을 사용하려면 

import java.util.Vector; 를 선언해야 한다.

→ 벡터 제네릭 컬렉션 메서드들이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

  • ArrayList 

ArrayList는 Vector보다 속도가 빨라 단일 스레드 응용에 더욱 효과적이다.

다수의 스레드가 동시에 ArrayList에 요소를 삽입하거나 삭제할 때 데이터가 훼손될 우려가 있다.

ArrayList 제네릭을 사용하려면 

import java.util.*;을 선언해야 한다.

 

ArrayList 제네릭의 선언 방법은 Vector와 비슷하다

ArrayList <클래스명> 이름 = new ArrayList <클래스명>();

 

 

 

 

 

 

 

 

 


 

 

  • HashMap

HashMap은 C++에서 map과 같은 역할을 하는 제네릭 컬렉션인 것 같다.

HashMap은 키, 값으로 구성되어 있는데 값을 출력하기 위해서는 키가 필요하다.

요소의 삽입, 삭제 , 검색 시간이 매우 빠르다

인덱스로 요소에 접근이 불가능하다.

Keyset을 이용하여 key값을 얻은 뒤 값으로 접근할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

  • Collections

Collections 클래스의 메서드는 모두 static 타입이므로 Collections클래스를 생성할 필요가 없다.

 

메소드
sort() 컬렉션에 포함된 요소들의 정렬
reverse() 요소를 반대 순으로 정렬
max(),min() 요소들의 최대값과 최소값 찾아내기
binarySearch() 이진 검색

 

 

 


 

 

 

이번 튜터링을 마치고 한번에 진도 나가는 양이 점점 많아지는 것 같아 살짝 부담스럽다...

맨 위로