我知道,如果我有元素,并且我只想用eith元素获得List/Set/Map,那么我应该调用:
Collections.singleton() / Collections.singletonList() / Collections.singletonMap()
我不明白为什么所有这些方法的名字中都包含singleton?
我曾假设它可能会为同一个对象返回相同的集合,但是这个测试表明它是假的
Object o = new Object();
System.out.println(Collections.singleton(o) == Collections.singleton(o));输出:假
对我来说,单例模式禁止创建多个具体类型的元素,并为访问该对象提供了统一网关。
请澄清。
发布于 2014-08-09 08:38:50
这是“单例”这个词的不同含义--它不是“单例模式”,而是“从单个项目创建一个集合”,仅此而已。
例如,来自define:singleton
被考虑的人或事物。
想想看:“单身”是“一件事”,而“对”则是“两件事”。因此,以同样的方式拥有Collections.pair(T t1, T t2)并不是完全不自然的。
发布于 2014-08-09 08:39:44
这些方法背后的思想是,集合中的元素是一个单数元素,并且将始终是-您不能从集合中删除它,也不能向该集合添加其他项。
https://stackoverflow.com/questions/25216742
复制相似问题