를 사용하여 중첩 된지도에 중첩 된 항목을 제거합니다 "? 그래서 저는 비슷한 것을 찾고 있습니다 MapUtil.remove(map,"employee.address.city")
는 어떻게 중첩지도, 이런 식으로 뭔가를 점 표기법
답변
하지 기본적으로, 아니,이 같은 String.split("\\.")
를 사용하여 확장 된 맵 키를 구문 분석하는 자신에게 방법을 쓸 수 있지만 :
public void nestedRemove(Map map, String keyToRemove)
{
String string = "employee.address.city";
String[] keys = string.split("\\.");
Map subMap = null;
for(int i = 0; i < keys.length -1; i++)
{
subMap = subMap.get(keys[i]);
}
subMap.remove(keys[i]);
}
반복마다 'if'를 사용하는 이유는 무엇입니까? 루프를'for (i = 0; i
@BoristheSpider 좋은 지적. 코드가 변경되었습니다. – StormeHawke
상당한 양의 캐스팅에 의지해야하지만 자신 만의 방법으로 작성할 수 있습니다. 마지막 부분에 도달 할 때까지 get
을 계속 호출하고 (다음 단계의 결과를 기억하는 것) 계속 remove
으로 전화 할 것입니다. null 반환을 확인하는 것을 잊지 마십시오. 모든 단계에서 get
제 3 자 라이브러리에 내장 된 내용을 모르겠다. 물론 그게 이 아니며,이 아닙니다.
자바 8 라이브러리를 Dynamics이 작업을 수행 할 수는 중첩 된지도/수집을 래핑 (다른 유형들 사이에서) 구조를 허용하고 정적 유형 지정없이 널 허용 추론을 허용합니다. 우리는 우리의 동적 인스턴스를 얻기 위해지도를 포장
Dynamic.from(map).get("employee").get("address").asMap().remove("city");
는 #get 지금은 그 아이의 아이, 또는 부재를 나타내는 다른 동적 인스턴스를 반환합니다. 따라서 이것은 null-safe합니다. 우리는 또한 많은으로 얻을 분할 #dget 사용하고, 아마도 직원 또는 주소가 예외없이 존재하지 않는 경우 처리 #maybe 수의 편의를 위해
:
Dynamic.from(map).dget("employee.address")
.maybe().asMap()
.ifPresent(address -> address.remove("city"));
- 1. 어떻게 이런 식으로 뭔가를 원하는보기
- 2. 나는 이런 식으로 뭔가를
- 3. 이런 식으로 뭔가를 보이는 쿼리
- 4. 방법, 나는 이런 식으로 뭔가를
- 5. 어떻게 이런 식으로 뭔가를 정의 할 매크로
- 6. 어떻게 incorect입니다 내가 이런 식으로 뭔가를
- 7. 어떻게 이런 식으로 뭔가를 시도 MVC3
- 8. 어떻게 이런 식으로 뭔가를 설정 개체
- 9. 나는 이런 식으로 뭔가를 HTML
- 10. 나는 이런 식으로 뭔가를 컨테이너
- 11. 고급 나는 이런 식으로 뭔가를
- 12. 나는 이런 식으로 뭔가를 할 노력하고있어
- 13. (301) 나는 이런 식으로 뭔가를 사용했다
- 14. 내가 이런 식으로 뭔가를 할 NULL
- 15. 나는 이런 식으로 뭔가를 할 노력하고
- 16. 나는 이런 식으로 뭔가를 보았다 PreferenceCategory 태그
- 17. 는 난 그냥 이런 식으로 뭔가를 할 하위 프로세스
- 18. 나는 이런 식으로 뭔가를 필요로 PHP
- 19. 나는 이런 식으로 뭔가를 할 노력하고있어 어떻게 동적 타입
- 20. 어떻게 내가 이런 식으로 뭔가를 찾고 있어요 자바
- 21. C++ : 나는 이런 식으로 뭔가를 할
- 22. 내가 이런 식으로 뭔가를 구현하고자, PHP
- 23. 나는 이런 식으로 뭔가를 할 노력하고있어 클래스
- 24. 구글지도 나는 이런 식으로 뭔가를 구축하고자
- 25. 나는 이런 식으로 뭔가를 DataTemplate을/데이터 형식
- 26. 나는 이런 식으로 뭔가를 만들려고 전망
- 27. 나는 이런 식으로 뭔가를 만들려고 노력하고 R
- 28. 문자열 포인터, 나는 이런 식으로 뭔가를 말
- 29. 무제한 나는 이런 식으로 뭔가를 실행하려면
- 30. 나는 이런 식으로 뭔가를 여러 개체
'문자열'을 나눈 다음 '지도'를 탐색하면됩니다. 이것은'Map'를 사용할 필요가 있음을 의미합니다. 왜 3 개의 중첩 된'Map'이 필요한가요? 'Object'가 실패하는 것처럼 들립니다. –
아웃 오브 더 박스는 아니지만, 실제 맵 값으로 펑키 한 것을하지 않는 한 단순한 재귀 함수입니다. OGNL, MVEL, EL 3 등과 같은 EL (Expression Language)을 사용할 수도 있지만, 이것이 유일한 유스 케이스라면 조금 부피가 커 보인다. –
@BoristheSpider 중첩 된 맵은 Jackson에서 JSON 파일의 비 직렬화로 생성됩니다. – Suneel