[JAVA 기초] 람바다 - 컬렉션 클래스 처리.
1. Stream의 가장 핵심적인 방법:collect
collect는 파이프 흐름의 결과를 하나의 값에 집합하는 끝 작업입니다. 이 값은 집합, 비추기, 또는 하나의 값 대상 등이 될 수 있습니다.그 사용법의 핵심은 Collectors 도구 클래스를 사용하여 이루어지는 것입니다. Collector 서비스를 위해 다양한 Collector를 만드는 데 사용됩니다.Collectors의 toMap 방법은 다음과 같습니다. (1) list 회전 맵List list = new ArrayList();
list.add(new Person(1, "haha"));
list.add(new Person(2, "rere"));
list.add(new Person(3, "fefe"));
//
Map mapp = list.stream().collect(Collectors.toMap(Person::getId, Function.identity()));
System.out.println(mapp.get(1).getName());
//
Map map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));
System.out.println(map);
키가 충돌할 때 처리되면 충돌이 발생할 경우 기존 항목을 유지합니다.Map map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName,(existing, replacement) -> existing));
(2) List에서 ConcurrentMap, treemap 등 기본적으로 tomap () 방법은 해시 맵을 되돌려주고 다른 맵도 되돌려줍니다.return list.stream().collect(Collectors.toMap(Person::getId, Function.identity(),(o1, o2) -> o1, ConcurrentHashMap::new)));
return list.stream().collect(Collectors.toMap(Person::getId, Function.identity(),(o1, o2) -> o1, TreeMap::new)));
Collectors에는 또 많은 방법이 있는데 예를 들어 Joining, toList, 그룹 등이다. 일부 기능은 Stream의 방법과 중합되어 코드를 간소화하기 위해 Collectors로 실현할 필요가 없고 Stream 방법을 우선적으로 한다.
2. Stream Filter 방법을 사용하여 특정 조건을 필터링할 수 있습니다. // 201901
List userCommonList = userList.stream().filter(a -> !a.getJobNumber().equals("201901")).collect(Collectors.toList());
3. 맵
하나의 서열을 다른 서열로 비추고, 비추는 규칙은 함수에 의해 제정된다.result = list.stream().filter(i -> UN_LOGIN.equals(i.getRemark())).map(this::chg2CodeInfo).collect(Collectors.toList());
//
public CodeInfo chg2CodeInfo(TbCode tbCode)
{
CodeInfo codeInfo = new CodeInfo();
codeInfo.setCodeVal(tbCode.getCodeVal());
codeInfo.setCodeDesc(tbCode.getCodeDesc());
codeInfo.setRemark(tbCode.getRemark());
return codeInfo;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
List list = new ArrayList();
list.add(new Person(1, "haha"));
list.add(new Person(2, "rere"));
list.add(new Person(3, "fefe"));
//
Map mapp = list.stream().collect(Collectors.toMap(Person::getId, Function.identity()));
System.out.println(mapp.get(1).getName());
//
Map map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));
System.out.println(map);
Map map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName,(existing, replacement) -> existing));
return list.stream().collect(Collectors.toMap(Person::getId, Function.identity(),(o1, o2) -> o1, ConcurrentHashMap::new)));
return list.stream().collect(Collectors.toMap(Person::getId, Function.identity(),(o1, o2) -> o1, TreeMap::new)));
// 201901
List userCommonList = userList.stream().filter(a -> !a.getJobNumber().equals("201901")).collect(Collectors.toList());
3. 맵
하나의 서열을 다른 서열로 비추고, 비추는 규칙은 함수에 의해 제정된다.result = list.stream().filter(i -> UN_LOGIN.equals(i.getRemark())).map(this::chg2CodeInfo).collect(Collectors.toList());
//
public CodeInfo chg2CodeInfo(TbCode tbCode)
{
CodeInfo codeInfo = new CodeInfo();
codeInfo.setCodeVal(tbCode.getCodeVal());
codeInfo.setCodeDesc(tbCode.getCodeDesc());
codeInfo.setRemark(tbCode.getRemark());
return codeInfo;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
result = list.stream().filter(i -> UN_LOGIN.equals(i.getRemark())).map(this::chg2CodeInfo).collect(Collectors.toList());
//
public CodeInfo chg2CodeInfo(TbCode tbCode)
{
CodeInfo codeInfo = new CodeInfo();
codeInfo.setCodeVal(tbCode.getCodeVal());
codeInfo.setCodeDesc(tbCode.getCodeDesc());
codeInfo.setRemark(tbCode.getRemark());
return codeInfo;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.