본문 바로가기
반응형

언어/JAVA5

[Java] PECS(Producer-Extends, Consumer-Super) 공식 Generics PECS(Producer-Extends, Consumer-Super), 생산자-extends, 소비자-super * 제네릭이란? 2023.02.13 - [언어/JAVA] - [Java] 제네릭(Generic) [Java] 제네릭(Generic) 제네릭 = 데이터 타입을 일반화한다, 클래스나 메소드에서 사용하는 내부의 타입을 외부에서 지정해주는 기법 제네릭 클래스 클래스 선언에 타입 매개변수가 쓰이면 이를 제네릭 클래스라 한다 kfdd6630.tistory.com PECS란? Producer-Extends, Consumer-Super의 줄임말이다. Collection으로부터 와일드카드 타입의 객체를 생성 및 만들면(produce) extends를 사용한다. 가지고 있는 객체를 Collect.. 2023. 2. 14.
[Java] 와일드카드 <?> 와일드카드의 종류에는 1. 비경계, 2. 한정적(상한,하한 경계) 와일드 카드가 있다. 비경계 와일드카드(Unbounded Wildcards) - ?의 형태로 사용한다. - 기본적으로 와일드카드는 정해지지 않은 unknown type이다. - 예를 들어, List 이다. - 모든 타입이 인자가 될 수 있다. - 상한 경계, 하한 경계 등 경계가 존재하지 않는다. public static void printList(List 비경계 와일드 카드 - Get List에서 Get한 원소는 Object 타입이다. - 비경계 와일드 카드의 원소는 어떤 타입도 될 수 있다. - 어떤 타입이 와도 읽을 수 있도록, 모든 타입의 공통 조상인 Object로 받는다. public static void get(List list.. 2023. 2. 13.
[Java] 제네릭(Generic) 제네릭 = 데이터 타입을 일반화한다, 클래스나 메소드에서 사용하는 내부의 타입을 외부에서 지정해주는 기법 제네릭 클래스 클래스 선언에 타입 매개변수가 쓰이면 이를 제네릭 클래스라 한다. 기본형태 class useBook {} 예제) class useBook { List users = new ArrayList(); public void add(T user) { users.add(user); } } 선언) UserBook magicianBook = new UserBook(); 사용하는 이유: 1. 런타임에서 잡히는 에러(자료형에 대한 검증)가 컴파일에서 잡히기 때문에 시간을 절약할 수 있다. 2. 컴파일 타임에 자료형의 오류에 대한 검증을 수행하여 런타임에 자료형에 안전한 코드를 실행한다. 3. 반환값에 대.. 2023. 2. 13.
[Java] 출력 3가지 방법 자바(Java) 어제 입력에 이어서 자바에서 기본적으로 쓰이는 출력과 백준, 프로그래머스 등 알고리즘을 풀 때 시간단축에 욕심이 있는 분들이 보시면 좋다고 생각이 든다. 기본적인 입력 (1) System.out.println(); or System.out.print(); ln이 붙어있으면 개행이 됩니다. System.out.println(); 은 System.out.print('\n');과 동일합니다. 버퍼를 사용하는 출력인 (2) BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write( // 들어갈 내용 ); write()안에 .. 즉 버퍼안에 데이터를 넣어준다 bw.flush(); // 버퍼를 비워주는 것.. 2023. 2. 1.
[Java] 입력 3가지 방법 자바(Java) 자바에서 기본적으로 쓰이는 입력과 백준, 프로그래머스 등 알고리즘을 풀 때 시간단축에 욕심이 있는 분들이 보시면 좋다고 생각이 든다. 기본적인 입력 (1) Scanner() 클래스 -> Scanner sc = new Scanner(System.in); 그 다음으로 필자가 알고리즘 문제를 풀때 스캐너 대신 기본적으로 쓰는 입력인 (2) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 마지막으로 속도의 한계를 실험해보고자 할 때.. (3) System.in.read()를 사용한 입력순서이다. 순서는 당연히 (1) < (2) < (3) 순서로 빠르다. 3이 제일 빠름 알고리즘 사이트에서 입력이 많은 문제를 풀 .. 2023. 2. 1.
반응형