首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Set/List/Map中包装元素的方法在名称中包含“singleton”?(java.util.Collections)

为什么Set/List/Map中包装元素的方法在名称中包含“singleton”?(java.util.Collections)
EN

Stack Overflow用户
提问于 2014-08-09 08:36:46
回答 2查看 115关注 0票数 1

我知道,如果我有元素,并且我只想用eith元素获得List/Set/Map,那么我应该调用:

Collections.singleton() / Collections.singletonList() / Collections.singletonMap()

我不明白为什么所有这些方法的名字中都包含singleton

我曾假设它可能会为同一个对象返回相同的集合,但是这个测试表明它是假的

代码语言:javascript
复制
        Object o = new Object();
        System.out.println(Collections.singleton(o) == Collections.singleton(o));

输出:假

对我来说,单例模式禁止创建多个具体类型的元素,并为访问该对象提供了统一网关。

请澄清。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-09 08:38:50

这是“单例”这个词的不同含义--它不是“单例模式”,而是“从单个项目创建一个集合”,仅此而已。

例如,来自define:singleton

被考虑的人或事物。

想想看:“单身”是“一件事”,而“对”则是“两件事”。因此,以同样的方式拥有Collections.pair(T t1, T t2)并不是完全不自然的。

票数 6
EN

Stack Overflow用户

发布于 2014-08-09 08:39:44

这些方法背后的思想是,集合中的元素是一个单数元素,并且将始终是-您不能从集合中删除它,也不能向该集合添加其他项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25216742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档