해결할 수없는 두 가지 문제가 있습니다. 첫 번째는 사용자가 전달할 수있는 1-n 중첩 된 그룹이있을 수있는 곳에서 동적 중첩 그룹화를 수행하는 방법이 필요하다는 것입니다.Java 8 중첩 그룹화
두 번째 문제는 키가있는 위치가 평탄해야한다는 것입니다. concat보다는 중첩 된.
내 예를 들어, 입력은 다음과 같습니다 : 키가 맵 내에 중첩 된지도보다는 CONCAT 있습니다
{
"10.0.1.1user": [
{
"uid": "tiger",
"ip": "10.0.1.1",
"group": "user"
},
{
"uid": "woods",
"ip": "10.0.1.1",
"group": "user"
}
],
"10.0.1.0admin": [
"uid": "root",
"ip": "10.0.1.0",
"group": "admin"
]
}
주의 사항 :
List<Map<String, String>> fakeData = new LinkedList<>();
Map<String, String> data1 = new HashMap<>();
data1.put("ip","10.0.1.0");
data1.put("uid","root");
data1.put("group","admin");
fakeData.add(data1);
Map<String, String> data2 = new HashMap<>();
data2.put("ip","10.0.1.1");
data2.put("uid","tiger");
data2.put("group","user");
fakeData.add(data2);
Map<String, String> data3 = new HashMap<>();
data3.put("ip","10.0.1.1");
data3.put("uid","woods");
data3.put("group","user");
fakeData.add(data3);
최종 결과는지도 키의 CONCAT 있습니다.
나는 그것이 운이없이 동적 일 수 어디에 groupingby을 만들려고 해요 : 약
public Map<String, List<Map<String, String>>> doGrouping(List<String> columns,
List<Map<String, String>> data);
구현하려는 메소드의 입/출력을 완전히 이해하고 있는지 잘 모르겠습니다. 출력 유형에 "n"중첩 그룹이 포함되어 있지는 않습니다. 예제 데이터로'doGrouping'을 어떻게 호출 할 것인지, 그리고 예상되는 결과는 무엇인지 보여줄 수 있습니까? – 4castle
doGrouping의'columns' 인자에'N' 엘리먼트가 포함되어 있다면'N' 엘리먼트의 각각에 의해 중첩 된 그룹을 만들어야한다는 말입니까?그리고 각 그룹의 키가 중첩되지 않고 연결되도록하고 싶습니까? –
출력 또는 인터페이스에서 n 레벨 중첩을 제안하는 항목이 표시되지 않습니다. 최상위 수준의 여러 키로 그룹화 된 것처럼 보입니다. – shmosel