java

java (generic, 컬렉션 프레임워크)

소리소리솔소리 2022. 9. 29. 09:56

*generic

-자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미

-데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입을 가질 수 있도록 하는 방법

-클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법

 

 

컴파일 시에 미리 타입 검사(type check)를 수행하면 다음과 같은 장점을 가진다.

-컴파일 시 강한 타입 체크

-타입 변환(casting)을 제거 

 

 

 

제네릭 타입 (class<T>, interface<T>)

 

 

 

*컬렉션 프레임워크

-자바는 배열의 여러가지 문제점을 해결하고 , 알려진 자료 구조를 바탕으로 객체를 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스를 제공 하고 있다.

이들을 총칭해서 컬렉션 프레임워크라고 부른다.

-데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것

-자바의 인터페이스(interface)를 사용하여 구현

 

 

컬렉션 프레임워크 주요 인터페이스

List 순서가 있는데이터의 집합, 데이터의 중복 허용 Vector, ArrayList, LinkedList, Stack, Queue
Set 순서가 없는 데이터의 집합, 데이터 중복 허용하지 않음 HashSet, TreeSet
Map<K, V> 키와 값의 한쌍으로 이루어지는 데이터의 집합으로 순서가 없음. 이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있음. HashMap, TreeMap, Hashtable, Properties

 

 

컬렉션 클래스

-컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스

-모든 컬렉션 클래스는 List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현하고 있다.

-Vector나 Hashtable과 같은 컬렉션 클래스는 예전부터 사용해 왔으므로, 기존 코드와의 호환을 위해 아직 남아 있다.

-하지만 기존에 사용하던 컬렉션 클래스를 사용하는 것보다는 새로 추가된 ArrayList나 HashMap 클래스를 사용하는 것이 성능 면에서 더 나은 결과를 얻을 수 있다.