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

标签 java collections singleton

我知道如果我有元素并且我只想获取包含每个元素的 List/Set/Map 我应该调用:

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

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

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

        Object o = new Object();
        System.out.println(Collections.singleton(o) == Collections.singleton(o));

输出:错误

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

请澄清。

最佳答案

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

例如,来自define:singleton :

a single person or thing of the kind under consideration.

这样想:“单例”是“一件事”,“成对”是“两件事”。因此,以相同的方式使用 Collections.pair(T t1, T t2) 并不是完全不自然的。

关于java - 为什么在 Set/List/Map 中包装元素的方法在名称中包含 'singleton'?(java.util.Collections),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216742/

相关文章:

java - jpanel 中图像的对齐

java - 切换动态工具提示 - java swing

java - 在 @CacheEvict 的键中使用非常量属性或字段

java - Java 中的 ArrayList 内的 Arraylist 内的 Arraylist

java - 在 mongodb 集合中找到一些值?

java - 程序允许重复设置。怎么可能?

java - 如何在读写操作之间锁定表

ios - 我的单例可以改进吗?

java - 记录器究竟如何是单例以及如何创建不同的日志文件?实现了我自己的记录器以供理解

Java 类的 getter/setter 方法和单例模式中的细粒度同步