2011-06-14 4 views
2

나는 Map<Something, List<String>> map이 있습니다. 에서 String을 제거하고 싶습니다.지도에서 값 제거

그럴 수 있습니까? 어떻게해야합니까?

매핑을 제거하고 싶지는 않지만 항목의 '값'을 변경하십시오.

나는 map.values().remove("someString")을 시도했지만 작동하지 않는 것 같습니다.

답변

3

map.get(somethingKey).remove("someString")을 시도

그럼 당신은 이런 식으로 뭔가를 할 수 있습니다.

1

실제로지도에 색인을 지정할 값이 있어야합니다.

map.get(mapValue).remove("someString")

1

이 시도 : map.get를 (키) .remove ("someString")

1

map.values()List<String> 콜렉션을 반환합니다. 값을 반복하고 모든 목록에서 키를 검색해야합니다.

Map<String, List<String>> map = new HashMap<String, List<String>>(); 
    Collection<List<String>> values = map.values(); 
    for(List<String> list : values) { 
     list.remove("someString"); 
    } 
1

모든 문자열 목록 또는 특정 문자열에서 문자열을 제거 하시겠습니까? 당신이 그들 모두를 제거 할 경우 그들은 '으로 다음, 이상 루프에 값을 필요

map.get(thekey).remove("someString") 

: 특정 일을 원하는 경우

는, 당신은 키에 의해 List<String>을 얻을 필요 다시 List<String> 님의 컬렉션입니다.

for (List<String> list : map.values()) { 
    list.remove("someString"); 
} 
1
Map<Something, List<String>> myMap = ....; 
myMap.get(somethingInstance).remove("someString"); 
0

는 네, 그것은 가능하다 :

if (map.containsKey(somethingParticular) && map.get(somethingParticular)!=null) 
    map.get(somethingParticular).remove("someString") 

경우 : 특정 맵 항목에서 문자열을 제거 할 경우,이 같은 것을 사용한다

Map<String,List<Integer>> map = new HashMap<String, List<Integer>>(); 
List<Integer> intList = new ArrayList<Integer>(); 
intList.add(1); 
intList.add(2); 
intList.add(3); 
intList.add(4); 
map.put("intlist",intList); 
System.out.println(map.get("intlist")); 
intList = map.get("intlist"); 
intList.remove(1); 
intList.add(4);  
//they will be the same (same ref) 
System.out.println(intList); 
System.out.println(map.get("intlist")); 
2

모든지도 항목에서 'someString'을 삭제하고 싶다면 다음을 따르는 것이 좋습니다.

for(List<String> list : map.values()) { 
    if (list!=null) 
     list.remove("someString"); 
} 
+0

'containsKey()'및 null 검사에 대한 좋은 아이디어. – Peter