Java 为什么我们要放在地图上并添加到列表中

Java 为什么我们要放在地图上并添加到列表中,java,android,naming-conventions,Java,Android,Naming Conventions,我注意到一些api使用add,比如view.addOnTouchListner(),而另一些api使用put,比如intent.putExtra()。在进一步检查它时,我发现当底层数据结构是map时,我们使用put,当底层数据结构是list时,我们使用add 那么,我们如何确定该方法的名称是put还是add呢?是否有一个是put而另一个是add的原因?如果需要将键映射到值,请使用put;如果需要添加到允许重复的列表,请使用add 话虽如此,on each Intent.putExtra()方法的

我注意到一些api使用add,比如
view.addOnTouchListner()
,而另一些api使用put,比如
intent.putExtra()
。在进一步检查它时,我发现当底层数据结构是map时,我们使用put,当底层数据结构是list时,我们使用add


那么,我们如何确定该方法的名称是put还是add呢?是否有一个是put而另一个是add的原因?

如果需要将键映射到值,请使用put;如果需要添加到允许重复的列表,请使用add

话虽如此,on each Intent.putExtra()方法的开头是:

将扩展数据添加到意图中

但也许它应该说

扩展数据放在适当的位置


地图显示
put
,而列表显示
add
。这是对命名约定的一个明显解释。
add
意味着您正在添加,这意味着如果您调用它n次,您将实际找到n个对象(查询/获取它)
put
不可能“put”涉及键和值的关联,“add”只用于在列表中添加项。Joshua Bloch为列表和地图设计并实现了这些接口。我喜欢Blackbelt的观点,但最终的答案来自JB。
Map.put()
可能会覆盖现有的映射,因此使用
add
将是错误的。