자바8에서 맵의 새로운 방법--replace

1974 단어 javamapreplace
맵은 Java8에 두 가지 Replace 방법을 추가했습니다.
1.replace(k,v)
지정한 키가 이미 존재하고 이와 관련된 맵 값이 있을 때 지정한 키를 지정한 값에 맵핑합니다 (새 값)
지정한 키가 존재하지 않을 때, 방법은null로 되돌아옵니다.
javadoc의 주석은 이 기본값 방법의 실현에 대한 등가 Java 코드를 설명합니다.

if (map.containsKey(key)) {
  return map.put(key, value);
} else {
  return null;
}
다음은 새로운 방법과 JDK8 이전 방법의 비교입니다.

/*
 *  Map.replace(K, V) JDK8 。JDK8
 *  Map.replace(K, V) , 
 *  final 。 
 */

// JDK8 
String replacedCapitalCity;
if (statesAndCapitals.containsKey("Alaska")) {
  replacedCapitalCity = statesAndCapitals.put("Alaska", "Juneau");
}

// JDK8 
final String replacedJdk8City = statesAndCapitals.replace("Alaska", "Juneau");
2.replace(k,v,v)
둘째, 새로 추가된 맵 리플레이스 방법은 현존값을 바꾸는 데 있어 더욱 좁은 해석 범위를 가진다.그 방법 (이전replace 방법) 은 지정한 키가 맵에 있는 유효한 값을 포함하는 교체 처리일 뿐, 이'replace'방법은 지정한 키와 값이 일치하는 경우에만 추가 (세 번째) 인자를 받아들일 수 있습니다.
javadoc 주석은 이 기본값 방법의 실현을 설명합니다.

if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
  map.put(key, newValue);
  return true;
} else {
  return false;
}
다음 코드는 새로운 실현 방법과 JDK8 이전의 실현 방법의 구체적인 비교를 열거한다.

/*
 *  Map.replace(K, V, V) JDK8 。JDK8
 *  Map.replace(K, V, V) , 
 *  final 。 
 */

// JDK8 
 boolean replaced = false;
 if (  statesAndCapitals.containsKey("Nevada")
  && Objects.equals(statesAndCapitals.get("Nevada"), "Las Vegas")) {
   statesAndCapitals.put("Nevada", "Carson City");
   replaced = true;
 }

// JDK8 
final boolean replacedJdk8 = statesAndCapitals.replace("Nevada", "Las Vegas", "Carson City");
지금까지 여러분께 들려드린 java8중맵의 새로운 방법인 Replace의 모든 내용입니다. 많은 응원 부탁드립니다~

좋은 웹페이지 즐겨찾기