Machine-translated by Google. Questions are authored in English.
Top

Discussion

Consider what Map.putIfAbsent does when the key is already mapped to a non-null value. Which statement is correct?

  • A.It removes the existing entry and inserts the new one.
  • B.It leaves the existing value in place and returns it.
  • C.It replaces the existing value and returns the old one.
  • D.It throws IllegalStateException to signal the conflict.

Answer: B

Correct answer: It leaves the existing value in place and returns it.

putIfAbsent inserts only when the key is absent or mapped to null; otherwise it makes no change and returns the value already there. That return value is the point of the method - the caller learns whether it won the race and, if not, what the existing value is. put is the method that overwrites and returns the previous value.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.