<br><br><div class="gmail_quote">2011/10/3 Doug Lea <span dir="ltr"><<a href="mailto:dl@cs.oswego.edu">dl@cs.oswego.edu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 10/03/11 09:34, √iktor Ҡlang wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'd love to be able to specify a Comparator in the constructor so that<br>
conditional remove doesn't rely on reference-equality or .equals (since<br>
oftentimes I cannot overload it)<br>
</blockquote>
<br></div>
One reasonable way to do this interacts with a decision<br>
I keep flip-flopping on because people make good cases for<br>
all three of the possibilities: What should the map do when<br>
either a mapper or remapper function returns null?<br></blockquote><div><br>TBH I think they need to be symmetrical to put(key, null), no?<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

The possibilities are:<br>
  1. treat it as a user error, so throw NullPointerException<br>
  2. treat it as a (re)mapping failure, so ignore the outcome<br>
  3. treat it as a removal<br>
<br>
I originally did (2), but arguments that (1) was a safer<br>
option led me to change to it in latest update. But yours<br>
is another of several use cases that make (3) more<br>
attractive -- on the plus side, it allows atomic removal<br>
(that you could use in the above case).<br>
But on the minus side it might lead to unintentional<br>
atomic removal.<br>
<br>
Further arguments welcome.<br><font color="#888888">
<br>
-Doug<br>
<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br><span style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Times;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><span style="font-family:arial;font-size:small"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">Viktor Klang<br>
<br>Akka Tech Lead</span><div><font face="arial, sans-serif"><span style="border-collapse:collapse"><a href="http://www.typesafe.com/" target="_blank">Typesafe</a><span> </span>- Enterprise-Grade Scala from the Experts</span></font><br>
<font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font><font face="arial, sans-serif" size="2"><span style="border-collapse:collapse">Twitter: @viktorklang</span></font></div></span></span><br>