본문 바로가기

JAVA55

[JAVA] Queue 인터페이스 Queue 인터페이스정의먼저 저장된 객체가 먼저 인출되는 구조를 가진 컬렉션 특징FIFO(First In First Out, 선입선출)입력과 출력을 다른 위치에서 수행하므로, 가장 먼저 입력한 객체가 가장 먼저 출력 사용 예브라우저에서 사용자의 요청이 갑자기 몰리면서버에서는 일단 Queue를 만들어서 사용자의 요청을 저장한 후에 빠른 요청(가장 먼저 들어온)부터 하나씩 인출하여 처리 2024. 4. 28.
[JAVA] 공변성이 없는 제네릭, 제네릭 와일드 카드 제네릭 타입은 공변성을 가지지 않는다[ 공변성, 반공변성 ]- 서로 다른 타입간에 함께 변할 수 있는 특징- 서로 다른 타입간의 형 변환인 업캐스팅(공변성), 다운캐스팅(반공변성)과 유사함  제네릭 타입으로 지정되면, 상하 관계에 있는 타입끼리도 형 변환이 불가제네릭의 타입 파라미터끼리는 상하 관계(상속 관계 등)가 있다고 해도 캐스팅(형 변환)이 불가능함(상위 클래스) Object, (하위 클래스) Number를 제네릭 타입 파라미터로 사용했을 때Number를 Object로 업캐스팅 불가(상위 클래스) Number, (하위 클래스) Integer를 제네릭 타입 파라미터로 사용했을 때 Integer를 Number로 업캐스팅 불가 [ 객체 타입은 상하관계가 있음 ]- 다형성의 성질을 사용할 수 있음- 조상.. 2024. 4. 26.
[JAVA] 제네릭 객체 생성 및 사용하기 용어 정리하고 가기1. Type Parameter (타입 파라미터)- generic 타입을 명시하기 위한 곳- 정의된 타입 파라미터가 내부적으로 실제 타입으로 변환- 예제 : T2. Type Argument (타입 인수)- 제네릭 클래스 생성 시에, 사용할 타입을 작성하는 곳- 예제 : Integer3. Parameterized Type - Type Argument에 의해서 Type Parameter(T)가 치환된 전체 데이터 타입- 예제 : Age    제네릭클래스나 인터페이스명 뒤에 "" 부호가 붙고, 그 사이에 타입 파라미터를 넣음 데이터 타입을 파라미터로 가지는 클래스와 인터페이스를 선언하여 사용할 수 있음타입 파라미터는 일반적으로 대문자 알파벳 한 글자로 표현함특정 클래스나 인터페이스를 다양한 .. 2024. 4. 26.
[JAVA] 제네릭이란? (정의, 타입 파라미터, 사용하기) 제네릭(Generics)데이터의 타입(data type)을 일반화한다(generalize)개념클래스나 메서드에서 사용할 내부 데이터의 타입을 미리 정하는 것내부 데이터 타입을 컴파일 시에 미리 지정하여,잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거가 가능해짐 장점컴파일 시에 미리 타입 검사(type check)를 수행하기 때문에, 실행 중에 일어나는 에러 방지제네릭 사용 시에, 불필요한 타입 변환을 하지 않아도 됨 컬랙션(Collection) 클래스에서 불필요한 타입 변환 발생- 기존의 컬렉션 클래스에는 모든 타입의 객체(Object형태로 저장)를 저장할 수 있음- 따라서, 다른 타입의 객체들이 저장될 수 있음- 반대로 컬렉션에 저장된 객체를 읽어올 때에 타입 변환이 필요함- 즉, 원래의 클.. 2024. 4. 25.
[JAVA] Set 인터페이스(HashSet, LinkedHashSet, TreeSet) [ 컬렉션 프레임워크의 종류 ]Collcetion 인터페이스Map 인터페이스[ collection 인터페이스 ]특징List, Set,Queue에서 상속하는 최상위 컬렉션 타입업캐스팅으로 다양한 종류의 컬렉션 자료형을 받아서 자료를 삽입, 삭제, 조회할 수 있음 종류ListQueueSet     Set 인터페이스특징- 객체의 중복을 허용하지 않음- 순위(index)가 지정되지 않음- 집합적인 특징을 가지고 있음종류1. HashSet 클래스 2. LinkedHashSet 클래스3. TreeSet 클래스  HashSet 클래스특징객체의 중복 저장을 허용하지 않음중복 저장이 불가능하므로, null값도 1개만 저장됨순서(index)가 지정되지 않음따라서, 요소를 가지고 오는 get(index) 메서드 없음출력 시.. 2024. 4. 25.
[JAVA] List 인터페이스(ArrayList, Vecror, LinkedList, Stack) [ 컬렉션 프레임워크의 종류 ]collection 인터페이스map 인터페이스[ collection 인터페이스 ]특징List, Set,Queue에서 상속하는 최상위 컬렉션 타입업캐스팅으로 다양한 종류의 컬렉션 자료형을 받아서 자료를 삽입, 삭제, 조회할 수 있음 종류ListQueueSet   List 인터페이스 특징배열(array)와 비슷하게 동작저장 순서가 유지되는 컬렉션을 구현하는 데에 사용데이터의 중복 저장을 허용저장 순서가 유지되므로, 배열처럼 index로 요소에 접근저장 공간이 고정되어 있지 않고 가변적임데이터를 추가하면, 자동으로 저장 공간(크기)이 늘어남요소들 사이에 빈 공간을 허용하지 않음따라서, 삽입과 삭제를 할 때마다 배열의 이동이 일어남하위의 ArrayList, LinkedList, V.. 2024. 4. 25.