250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Open Source
- error
- oracle
- 오픈소스
- 설정
- git
- spring
- ubuntu
- Eclipse
- Source
- maven
- JavaScript
- STS
- SpringBoot
- MSSQL
- Tomcat
- Python
- Spring Boot
- Thymeleaf
- PostgreSQL
- jpa
- Core Java
- Exception
- MySQL
- Docker
- IntelliJ
- AJAX
- myBatis
- 문서
- JDBC
Archives
- Today
- Total
헤르메스 LIFE
[Core Java] 람다식을 이용한 List 안에 Map 에서 데이터 찾기 본문
728x90
일반적으로 List<Map<String, String>> 표현을 많이 사용하게 되는데..
List 안에 Map이 있는 경우, 데이터를 찾기가 쉽지 않습니다. 결국은 for loop 를 이용하는 수 밖에..
package test.sample.string;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
public class RamdaSample {
public static void main( String[] args ) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = null;
map = new HashMap<String, String>();
map.put( "sabun", "0001" );
map.put( "name", "홍길동" );
list.add( map );
map = new HashMap<String, String>();
map.put( "sabun", "0002" );
map.put( "name", "허균" );
list.add( map );
map = new HashMap<String, String>();
map.put( "sabun", "0003" );
map.put( "name", "신사임당" );
list.add( map );
map = new HashMap<String, String>();
map.put( "sabun", "0004" );
map.put( "name", "허균" );
list.add( map );
Map<String, String> result = null;
Optional option = null;
// 첫번째꺼
option = list.stream().filter( x -> x.get( "name" ).equals( "허균" ) ).findFirst();
System.out.println( "option :: " + option );
// 아무거나
option = list.stream().filter( x -> x.get( "name" ).equals( "허균" ) ).findAny();
System.out.println( "option :: " + option );
// Option
System.out.println( "option.get() :: " + option.get() );
// 모두 찾음
Iterator<Map<String, String>> itr = list.stream().filter( x -> x.get( "name" ).equals( "허균" ) ).iterator();
while ( itr.hasNext() ) {
result = itr.next();
System.out.println( "result :: " + result );
}
}
}
참고 : walbatrossw.github.io/java/2018/02/21/java-basic-28-lambda.html
728x90
'Core Java' 카테고리의 다른 글
[Jackson] ObjectMapper, String to Map, to List, Object to JSON (0) | 2021.01.31 |
---|---|
[Core Java] RequestMap 출력 (0) | 2021.01.17 |
[Excel] 대용량 Excel 파일 읽기 (0) | 2021.01.02 |
[Core Java] 경과 시간 구하기 (0) | 2020.12.29 |
[Source] 문자열 관련 Sample (0) | 2020.12.22 |