Heim  >  Artikel  >  Funktionsmethode zum Abrufen des vorherigen und neuen Werts von ConcurrentHashMap

Funktionsmethode zum Abrufen des vorherigen und neuen Werts von ConcurrentHashMap

王林
王林nach vorne
2024-02-08 22:40:37913Durchsuche

Der PHP-Editor Youzi stellt Ihnen die Funktionsmethode zum Erhalten des vorherigen Werts und des neuen Werts in ConcurrentHashMap vor. ConcurrentHashMap ist eine Thread-sichere Hash-Tabellenimplementierung, die häufig in der gleichzeitigen Java-Programmierung verwendet wird. Sie bietet einige praktische Funktionsmethoden zum Bearbeiten von Schlüssel-Wert-Paaren in der Hash-Tabelle. Es enthält Funktionsmethoden zum Erhalten des vorherigen Werts und des neuen Werts. Mit diesen Methoden kann der dem Schlüssel entsprechende Wert in der Hash-Tabelle bearbeitet und aktualisiert werden. Als nächstes werden wir die Verwendung und Vorsichtsmaßnahmen dieser Funktionsmethoden im Detail vorstellen.

Frageninhalt

Ich muss den vorherigen Wert und den neuen Wert aus Java Concurrenthashmap (im Scala-Code) abrufen. Um die Thread-Sicherheit zu gewährleisten, verwende ich den compute-Block, der nur den neuen Wert zurückgibt. Ist es möglich, sowohl den neuen als auch den vorherigen Wert zu erhalten, ohne eine Variable mit einem anfänglichen Nullwert zu verwenden? Hier ist meine aktuelle Lösung:

map: ConcurrentHashMap[String, Object] = new ConcurrentHashMap

  def foo = {
    var previousValue: Object = null

    val newValue = map.compute("key", (_, value) => {
      previousValue = Option(value).getOrElse(initialValue)
      setNewValue(previousValue)
     }
    )

    (previousValue, newValue)
  }

Lösung

Nein. Die aktuelle Version von ConcurrentHashMap.

Das obige ist der detaillierte Inhalt vonFunktionsmethode zum Abrufen des vorherigen und neuen Werts von ConcurrentHashMap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen