본문 바로가기
IT★_공부

자바의 Collection

by 문또끼 2022. 8. 23.

Collection

Collection이란?

여러개의 값을 효과적으로 관리하기 위한 객체

타입을 강제로 지정할 수 있음.(generic : type 관리)

넣는 데이터의 갯수에 따라서 저장 용량이 늘어나거나 줄어듬. (capacity : 가변용량 )

  • array와의 차이점 : array: 같은 타입의 여러개의 값을 효과적으로 관리하기 위한 객체, generic(type 관리), capacity(가변 용량)

generic

: 프로그래머가 의도한 타입만 저장할 수 있도록 타입 강제시키는 것.

generic 사용 시 보통 T,E,K,V 를 사용하고 다른 알파벳을 이용해도 됨.

<T> : type <E >: element <K> : key <V> : value

? : wild card (알수 없는 타입)

capacity

넣는 데이터의 갯수에 따라서 저장 용량이 늘어나거나 줄어듬.

Vector(백터)

: 성장하는 배열 : 여러값을 효과적으로 관리하기 위한 객체 vector(a, b) : a의 용량을 가진 백터를 생성하는데 최대치를 넘게 추가할경우 b씩 추가해라 : 줄어들지는 않음. 100 - 10 : 값은 90이지만 공간은 100 그대로 .

a: 최대로 들어갈  잇는 용량(initial capacity).
b: 용량이 최대로 들어간  5 증가(capacity increment).

List Set Map

List ****: 값을 넣은 순서대로 배열됨, 중복가능

List<String> list = new ArrayList<String>();

  • ArrayList<String> 이부분은 앞에는 List인데 뒤에는 ArrayList인 이유?: List아래에는 ArrayLIst와 LinkedList가 있다. 따라서, List클래스의 ArrayList를 사용하겠다 라는 것.
  • :List는 interface 이과, ArrayList는 collection이기 때문에, ArrayList를 이용하여 객체생성을 하려고 사용.

Set ****: 넣은 값의 순서와 중복이 없음.

< set 배열로 가져오는법 > 방법 1. 향상된 포문으로 가져오기 for(Score s : set) 방법 2. 오브젝트 타입으로 배열로 만들어 가져오기 Object[] s = set.toArray(); 방법 3. Iterator 사용 : 컬랙션의 저장요소를 읽는 표준화된 방법 ( 커서있음 ) Iterator<Score> s = set.iterator(); ( list , set )

Iterator

: 컬랙션의 저장요소를 읽는 표준화된 방법 ( list , set 사용가능, map은 사용불가).

(iterate : 훑다. iterator:반복자, 훑어보는자)

Map<k,v> : 키값을 통해 value값에 접근

Map<k,v>: (key : 주소 , value : 값) : entry 를 통해 따로 가져올수있음

map과 entry 의 차이점

map 은 k,v와 되어있는데 발류값을 가지고 오고 싶으면 키로만 가져와야 하는데

entry는 키와 밸류의 한쌍을 따로 따로 가져올 수 있도록 함.

entrySet(): map 안에 있는 것들을 키 따로 벨류 따로 있는 엔트리로 바꿔야하며, map 안에 객체가 몇개 있는지 몰라서, Set으로 가져와서(collect)갯수를 세도록 하겠다.

<참고>

map.entrySet().iterator();

(map: map이 담겨있는 변수)

k,v 가 담겨있는 entry가 (collection이 리턴타입인)set안에 담기고, 이 set 을 iterator를 이용해서 저장된 값들을 읽는다.

<참고>

map.keySet().iterator();

(map: map이 담겨있는 변수)

키셋도 k로 가져오고 (리턴타입이 collection )따라서 set 안에 넣음 그리고 이 set 을 iterator를 이용해서 저장된 값들을 읽는다.

Entry

: Map 을 key 따로 value 따로 가져오는 방법 ( Map 사용가능 )

  • entrySet() : key와 value의 값을 entry에 담아서 Set에 넣음.
  • keySet() : 메서드는 key의 값만 출력

< 용어정리 >

.indexOf() :()안의 값을 찾아서 해당하는 인덱스를 리턴 , 못찾으면 -1을 리턴

.set(int a, String b) : a번지의 값을 b로 바꿔라.

Vector.get(i) : i 번지의 값을 가져와라

String.replace("a", "b"): 나의 a를 b로 바꿔라.

String.endsWith("a") : 끝자리가 만약 a로 끝나면, true 를 리턴해라.

collection.sort(List a , Comparator b)

         : ab를 이용해서 정렬 
         : Comparator:  다른 객체가 2개의 객체를 비교해줌

Iterator.hasNext() : 그 다음 값이 있으면 true리턴.

Iterator.next(): 다음 값을 리턴.

hashmap(); : Map인터페이스를 상속받아서 map 이라는 객체를 생성함.

hashset(); : Set인터페이스를 상속받아서 set이라는 객체를 생성함.

Comparable과 Comparator 의 공통점과 차이점

공통점

:java 객체를 정렬

차이점

Comparable

:compareTo(Object other)

:각각의 "나(this)" 와 "다른객체(other)"를 비교. java에서 기본적으로 적용되는 정렬 기준.

Comparator

:compare(Object other1, Object other2) : 객체 1과 객체 2를 "심판"이 비교

:다른 객체가 2개의 객체를 비교해줌 , 첫번째 매개변수가 더 클 때 양수를 반환하여 오름차순으로 정렬.

'IT★_공부' 카테고리의 다른 글

자바의 Stream  (0) 2022.08.23
자바의 Exception  (0) 2022.08.23
자바의 Class  (0) 2022.08.23
자바의 String  (0) 2022.08.22
자바의 배열 Array  (0) 2022.08.22