我期待着到一個列表轉換成地圖從對象到基於Java 8或番石榴
List<Element>
到地圖Map<String,List<Element>
元其鍵和值組對象的列表類包含鍵和值
public class Element {
public Element(final key, final value) {
this((Object) key, (Object) value, 1L);
}
public final Object getObjectKey() {
return key;
}
public final Object getObjectValue() {
return value;
}
}
我的方式添加元素就像
empRepository.save(new Element(empKey, empTransaction));
的empKey是類的一個對象EmpKey
public class EmpKey{
private String employeeId;
private String tenantId;
//Getters & Setters
}
在另一個類中的方法groupElementsByEmployeeId試圖那些集合元素參數轉換爲地圖
public void groupElementsByEmployeeId(Collection<Element> elements){
List<Element> to a map of Map<String,List<Element>
where Map key String is tenantId which is in EmpKey
}
要組中的所有元素的基於on tenantId這是EmpKey的財產
EmpKey是元素的關鍵
//List<Element> to a map of Map<String,List<Element>
// where Map key String is tenantId which is in EmpKey
東西,我開始了,但不知道如何讓我期待的輸出
elements.stream().collect(Collectors.groupingBy(Element::getObjectKey))
I have to cast groupingBy(Element::(EmpKey)getObjectKey.getTenantId))
正如你已經考慮使用番石榴取代'Map''與Guava的一個['ListMultimap ''(https://google.github.io/guava/releases/17.0/api/docs/) com/google/common/collect/ListMultimap.html)實現。 –
Robert
我讀完了你的「問題」 - 但是我錯過了你要求的東西。請編輯它並添加您的問題。 – Robert
我如何做分組,因爲map的鍵是tenantId,這是EmpKey的一個屬性。 EmpKey是元素的關鍵 –