use*_*818 76 java collections map
我不明白你为什么需要java Collections singletonMap?它在多线程应用程序中有用吗?
Mic*_*rdt 114
基本上,它允许您这样做:
callAPIThatTakesAMap(Collections.singletonMap(key, value));
Run Code Online (Sandbox Code Playgroud)
而不是这个:
Map<KeyType, ValueType> m = new HashMap<KeyType, ValueType>();
m.put(key, value);
callAPIThatTakesAMap(m);
Run Code Online (Sandbox Code Playgroud)
当你只有一个键/值对时更好.这种情况可能不会经常出现,但singleton()并 singletonList()可能频繁是有用的.
Hen*_*olm 14
如果您需要将映射传递给某些通用代码(作为参数,或者作为方法的结果)并且您知道在这种特定情况下 - 但是在其他情况下可能不会将映射传递给相同的通用代码 - 您要传递的地图只有一个密钥.在这种情况下,SingletonMap比完整的地图实现更有效,对程序员来说也更方便,因为你需要说的一切都可以在构造函数中说出来.
此外,Collections.singletonMap()返回的SingletonMap实现具有比常规HashMap更小的内存占用.它只需要包含两个成员字段:键和值,而HashMap维护一个Node对象的内部数组和其他成员字段.因此,如果您在内存中创建了大量这些映射,那么使用Collections.singletonMap()将是一个谨慎的选择.
很多答案告诉你什么时候,但我想指出什么时候not use it
如果你想用就put items later on不要使用它
因为 put 执行singletonMap会抛出UnsupportedOperationException
主要是为了方便和抽象。某些 API 采用 aCollection作为参数,如果有一种简单的方法将对象转换为 aSet或,那就太好了Map。
singletonMap()singletonList()实际上是在 Java 1.3 之后引入的,因为singletonSet()事实singletonSet()证明它很有用。
| 归档时间: |
|
| 查看次数: |
48814 次 |
| 最近记录: |