목록All Categories 73
Formoat's Open Blog
제네릭이란? 1) 클래스 내부에서 사용할 데이터 타입을 외부에서 인스턴스 생성시 지정하는 기법 2) 데이터 타입을 매개변수화 시키고 컴파일시에 구체적인 타입을 강력하게 체크 3) 컬렉션, 람다식(함수적 인터페이스), 스트림 등에서 사용되고 있다. # 제네릭 타입의 클래스/인터페이스 public class 클래스 { ... } public interface 인터페이스 { ... } (1) 클래스/인터페이스 선언시 이름뒤에 기호 와 함께 타입 파라미터가 위치한다. (2) 타입 파라미터는 일반적으로 대문자 알파벳 한문자로 표현하기로 약속되어 있다. (3) 인스턴스 생성시 타입 파라미터가 위치한 자리에 구체적인 타입을 지정해야 한다. # 제네릭 타입 이전의 코드 public class Test {..

Function Return Type Method Interface Remarks 매칭 boolean allMatch( ... ) Stream, IntStream, LongStream, DoubleStream 모든 요소가 조건에 만족 anyMatch( ... ) 단 하나라도 조건에 만족 noneMatch( ... ) 모든 요소가 조건에 만족X 집계 long count() 요소 개수 카운팅 OptionalXXX findFirst() 첫번째 요소 Optional max( ... ) 최대값 Optional min( ... ) 최소값 ... reduce( ... ) 커스텀 집계 메소드 OptionalDouble average( ... ) IntStream, LongStream, DoubleStream 평균 in..

Function Method Interface Remarks 필터링 disinct() Stream, IntStream, LongStream, DoubleStream 중복을 제거한 요소로 구성된 스트림 반환 filter( ... ) Predicate 조건에 맞는 요소로 구성된 스트림 반환 매핑 flatMap( ... ) Stream, IntStream, LongStream, DoubleStream 한 개의 요소를 대체하는 복수개의 요소들로 구성된 스트림 반환 flatMapToDouble( ... ) Stream flatMapToInt( ... ) flatMapToLong( ... ) map( ... ) Stream, IntStream, LongStream, DoubleStream Function을 이용해 ..

2019/09/04 - [Java] - 스트림 중간 처리 2019/09/04 - [Java] - 스트림 최종 처리 1. 스트림 1) 컬렉션, 배열 등의 저장 요소들을 하나씩 참조하여 반복적으로 처리할 수 있도록 해주는 반복자라고 할 수 있다. 2) 스트림이 제공하는 대부분의 요소 처리는 람다식, 메소드참조를 이용해 처리 한다. 3) 내부 반복자를 사용하기 때문에 병렬 처리가 쉽다. 4) 중간 처리, 최종 처리를 할 수 있기 때문에 불필요한 코드를 제거하고 간소화 할 수 있다. # 내부 반복자 : 컬렉션 내부에서 요소들을 반복 처리하는 코드 패턴 (스트림이 사용하는 패턴) # 외부 반복자 : while문, for문 등 을 이용해 개발 코드와 컬렉션을 이동하며 반복하는 코드 패턴 (1) 병렬 ..

1. Stack 1) 후입선출 (LIFO: Last In First Out) 구조를 가지고 있다. 2) 데이터의 추가/삭제를 하는 입/출구가 한 개로 공통으로 사용함 3) 스택은 Collection -> List -> Vector 를 상속 받는다. (상위 클래스의 메소드들을 가지고 있음) Return Type Method Remarks E push(E item) 스택에 데이터를 넣는다. E pop() 스택에서 데이터를 가져오고 가져온 데이터는 스택에서 삭제한다. E peek() 스택에서 데이터를 가져오고 가져온 데이터를 스택에서 삭제하지 않는다. Stack 주요 메소드 StackExample.java public class StackExample { public static void main(Stri..
검색기능

인터페이스 구현 클래스 특징 Map HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 키와 값으로 구성, 키와 값은 모두 객체이고 키는 중복(X), 값은 중복(O) Map.Entry라는 키와 값을 갖는 객체를 생성해 컬렉션에 저장하는 구조 1. HashMap 키와 값으로 구성되어 있으며 키는 중복이 허용되지 않는다. Set과 마찬가지로 동등 객체 비교를 위해 키 객체의 경우엔 hashCode() 메소드와 equals() 메소드가 재정의 되어 있어야 한다. 키 타입은 주로 String을 사용한다. 2. Hashtable HashMap과 동일한 구조로 이루어져 있다. 차이점은 List의 Vector와 같이 스레드 동기화(synchronized)가 되어있어 ..

인터페이스 구현 클래스 특징 Set HashSet, LinkedHashSet, TreeSet 순서 유지(X), 중복 저장(X), 집합에 비유됨, 하나의 null값 저장 가능 1. HashSet 요소들을 순서 없이 저장하고, 중복 저장하지 않는다. Set의 중복 개념은 꼭 같은 인스턴스를 의미하지 않는다. 다른 인스턴스라고 하더라도 동등한 객체라면 중복으로 판단해 저장하지 않는다. 동등한 객체인지를 판별하기 위해서 Object 클래스에서 상속받는 hashCode() 메소드와 equals() 메소드를 이용하게 되는데, 먼저 hashCode() 메소드를 이용해 두 객체의 해시코드가 같은지 판별한 뒤 만약 해시코드가 같다면 equals()메소드를 이용해 두 객체를 비교해 최종적으로 동등한 객체인지 여부를 판단한..