람다식은 메서드를 하나의 식(expression)으로 표현한 것.


-  객체 지향 언어보다는 함수 지향 언어에 가까움.

-  함수를 간략하면서도 명확한 식으로 표현가능하다.

-  메서드를 람다식으로 표현하면 메서드의 이름 및 반환 값이 없어지므로 익명 함수 라고도 한다.

-  람다식의 형태는 매개 변수를 가진 코드 블록이지만 런타임 시에는 익명 구현 객체를 생성한다.



1. 람다의 표현방식




2. lambda 사용한 List foreach




3. Map 안에 List와 Map 모두 넣기




4. lambda 사용한 Map foreach




5. lambda 로 interface와 추상메소드 호출 




6. lambda 사용하여 함수 정의 및 호출 




7. lambda 사용하여 List Stream Method





쿼리를 작성하다 조건을 여러개 걸어야 할 경우가 발생하였다.

다음과 같이 조건을 여러개 처리하기 위한 사전조건이 주어지고 해당 리스트를 뽑아야한다면

어떤방법으로 뽑을수 있을지 생각해보았다.



사전조건 


1.    a.cmpn_type_cd in('101','102','103') 캠페인유형이 이벤트1, 이벤트2, 이벤트3 가져와야함.


2.    이벤트3의 추첨유형은 c.draw_way_cd = '30' 인 랜덤추첨인것만 뽑아야함.


3.    c.draw_way_cd 는 10(추첨안함), 20(바로추첨), 30(랜덤추첨), null 등의 값이 들어감.


결론: 


이벤트1, 이벤트2는 모든추첨유형의 리스트를 가져와야하고 이벤트3은 랜덤추첨유형의 리스트를 가져와야함.




1. where case문 사용하기





2. or문 사용하기




다음과 같이 쿼리를 사용하여 where 조건절 안에서 

이벤트1(모든유형), 이벤트2,(모든유형), 이벤트3(랜덤추첨유형) 의 리스트를 가져오는것을 확인할수 있었다.




  1. 2018.06.29 02:31

    비밀댓글입니다


1. Java Collection의 이해


Java Collection FrameWork Hierarchy Diagram  자바 컬렉션 프레임 워크 계층 다이어그램






Java에서 데이터를 저장하는 기본적인 자료구조들을 한 곳에 모아 관리할 수 있다.

JCF의 상속 구조이며 List, Set, Map 3가지로 요약할 수 있다.



2. Java Collection Interface의 종류 및 특징


 인터페이스

 구현 클래스 

 특징 

List

 LinkedList

 Stack

 Vector

 ArrayList

  1. 순서가 있는 데이터의 집합 Ok

  2. 데이터의 중복을 허용 Ok

Set

 HashSet

 TreeSet

 Java Collection Framework (JCF)

  1. 순서를 유지하지 않는 데이터의 집합 No

  2. 데이터의 중복을 허용하지 않는다

Map

 HashMap

 TreeMap

 HashTable

 Properties

  1. 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합

  2. 순서는 유지되지 않음 No

  3. 키 중복을 허용하지 않음No

  4. 값 중복을 허용 Ok



3. Java Collection Interface

 


3. Collection Interface


모든 콜렉션의 상위 인터페이스로써 콜렉션들이 갖고 있는 핵심 메소드를 선언 

(add, contain, isEmpty, remove, size, iterator ...)



3.1 List Interface 


Collection 인터페이스를 확장한 자료형으로 요소들의 순서를 저장하여 색인(Index)를 사용하여 

특정 위치에 요소를 삽입하거나 접근할 수 있으며 중복 요소 허용


3.1.1 ArrayList


상당히 빠르고 크기를 마음대로 조절할 수 있는 배열, 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점이 있음


3.1.2 LinkedList


양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 보장함

스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임


3.1.3 Vector

ArrayList의 구형버전이며, 모든 메소드가 동기화 되어있음, 잘 쓰이진 않음



3.2 Set Interface 


집합을 정의하며 요소의 중복을 허용하지 않음, 상위 메소드만 사용함


3.2.1 HashSet

가장 빠른 임의 접근 속도, 순서를 전혀 예측할 수 없음


3.2.2 LinkedHashSet

추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능


3.2.3 TreeSet

정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음



3.3 Map Interface


Key와 Value의 쌍으로 연관지어 저장하는 객체


3.3.1 HashMap

Map 인터페이스를 구현하기 위해 해시테이블을 사용한 클래스

중복을 허용하지 않고 순서를 보장하지 않음

키와 값으로 null이 허용


3.3.1.1 LinkedHashMap

기본적으로 HashMap을 상속받아 HashMap과 매우 흡사

Map에 있는 엔트리들의 연결 리스트를 유지되므로 입력한 순서대로 반복 가능


3.3.2 Hashtable

HashMap 보다는 느리지만 동기화가 지원

키와 값으로 null이 허용되지 않음


3.3.3 TreeMap

이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장

정렬된 순서로 키/값 쌍을 저장하므로 빠른 검색이 가능

저장시 정렬(오름차순)을 하기 때문에 저장시간이 다소 오래 걸림





java api url : https://docs.oracle.com/javase/7/docs/api/





+ Recent posts

티스토리 툴바