String
을 키로 사용하고 List
을 값으로 가지는 Groovy에서 Map
을 사용하는 방법에 대한 예제를 알려줄 수 있습니까?Groovy의 목록으로 키와 문자열 및 값으로 키로 매핑
20
A
답변
27
그루비 거의 모든 자바 구문을 허용, 그래서 아래 그림과 같이 선택의 스펙트럼이있다 :지도를 처리 할 때의 값으로/목록에 도움이됩니다
// Java syntax
Map<String,List> map1 = new HashMap<String,List>();
List list1 = new ArrayList();
list1.add("hello");
map1.put("abc", list1);
assert map1.get("abc") == list1;
// slightly less Java-esque
def map2 = new HashMap<String,List>()
def list2 = new ArrayList()
list2.add("hello")
map2.put("abc", list1)
assert map2.get("abc") == list2
// typical Groovy
def map3 = [:]
def list3 = []
list3 << "hello"
map3.'abc'= list1
assert map3.'abc' == list3
13
def map = [:]
map["stringKey"] = [1, 2, 3, 4]
map["anotherKey"] = [55, 66, 77]
assert map["anotherKey"] == [55, 66, 77]
5
한 추가 작은 조각 지도는 groovy의지도에 withDefault(Closure)
메쏘드입니다. 대신 다음 코드를 수행하는 기본적으로
Map m = [:].withDefault{key -> return []}
for(object in listOfObjects)
{
List valueList = m.get(object.myKey)
m.put(object.myKey, valueList)
}
뿐만 아니라 다른 것들에 사용할 수 있습니다,하지만 난이 날의 가장 일반적인 사용 방법으로 찾을 수 있습니다 :
Map m = [:]
for(object in listOfObjects)
{
if(m.containsKey(object.myKey))
{
m.get(object.myKey).add(object.myValue)
}
else
{
m.put(object.myKey, [object.myValue]
}
}
다음과 같은 작업을 수행 할 수 있습니다.
는API는 : http://www.groovy-lang.org/gdk.html
지도 -> withDefault (폐쇄)
1
당신은지도 끝내 선언 할 필요가 없습니다은 내부적으로 인식 또한
def personDetails = [firstName:'John', lastName:'Doe', fullName:'John Doe']
// print the values..
println "First Name: ${personDetails.firstName}"
println "Last Name: ${personDetails.lastName}"
관련 문제
- 1. JSON에 문자열 키와 List [] 값으로 사전 순화
- 2. 도저 문자열 목록에서 다른 목록으로 매핑
- 3. RSpec : 해시를 문자열 키와 비교하여 해시를 기호 키로 비교 하시겠습니까?
- 4. 외래 키로 외래 키로 하나 또는 여러 개의 매핑 매핑
- 5. 클래스 이름을 키로 사용하여 매핑
- 6. 배열에서 키와 값으로 in_array() 사용?
- 7. 하나의 키와 문자열 값을 가진 배열을 여러 키와 값으로 배열로 배열
- 8. Dozer : 단일 필드를 목록으로 매핑
- 9. 키와 값으로 대칭 연관 배열 검색
- 10. Enumerable.Range를 문자열 목록으로 변환
- 11. 문자열 사전을 목록으로 변환하여 사전 목록으로 변환하는 방법은 무엇입니까?
- 12. 쿼리 CouchDB 데이터를 다른 키로 여러 키와 순서 데이터로 변환
- 13. boost :: spirit을 사용하여 목록으로 문자열 구문 분석하기
- 14. 키와 값으로 데이터를 저장하는 방법은 무엇입니까?
- 15. java HashMap에 키와 값으로 arraylist가 포함되어 있습니다.
- 16. asp.net - 목록으로 된 값으로 사전을 표시 하시겠습니까?
- 17. 열거 형을 다른 값으로 매핑
- 18. BST 키 값으로 문자열 사용
- 19. 저지의 값으로 인한 매핑 오류
- 20. 목록 값을 키 값으로 사전 키로 사용합니다.
- 21. 문자열과 문자열을 문자열 문자열 데이터베이스의 키로 비교
- 22. 두 개의 외래 키를 하나의 기본 키로 매핑 (XML 매핑)
- 23. 정적 문자열 -> 문자열 매핑
- 24. 파이썬에서 문자열 목록으로 파일 읽기
- 25. 문자열 목록을 int 목록으로 변환
- 26. 어떻게 문자열 문자를 목록으로 변환합니까?
- 27. 파이썬 : 파일을 문자열 목록으로 변환합니다.
- 28. 하스켈의 문자열 키로 동적 프로그래밍
- 29. unordered_set에서 문자열 *을 키로 사용
- 30. 동시에 두 개의 열을 복합 키와 외래 키로 동시에 처리합니다.
: ' map.stringKey = [1, 2, 3, 4]; map.anotherKey = [55, 66, 77]' – Will