当前位置: 首页 > 知识库问答 >
问题:

在集合中包装对象的实用程序方法

蔡宏大
2023-03-14

我正在Java核心库中寻找一个静态方法,或者其他一些常用的依赖项(最好是Apache的依赖项),它可以实现以下功能:

public static <T> Collection<T> wrap(final T object){
    final Collection<T> collection = new ArrayList<T>();
    collection.add(object);
    return collection;
}

你知道这种方法在哪里已经存在吗?因为我猜这个问题很常见,所以我不想重复它的解决方案。

共有3个答案

卫嘉言
2023-03-14

番石榴中的不变列表

public static <E> ImmutableList<E> of(E element)

返回包含单个元素的不可变列表。此列表的行为和性能与集合类似。singleton(T),但不接受空元素。这主要是为了代码的一致性和可维护性。

王泓
2023-03-14

从Java8开始,这里有一些在List中包装Java对象的有效方法。

收藏。singletonList:单一项,不可变,从1.3开始
收藏。singletonList(对象)
内部类支持的高性能。

从1.2开始,一个对象,零到许多项,不可变。
集合。nCopies(number_of_copy,对象)
由内部类支持的高性能。所有项目都指向同一个对象。

rray.as列表:任意数量的对象,大小不可变(单个元素可变),从1.2开始。
rrays.as列表(对象1,对象2,对象3)
由内部类支持。项在编译时转换为数组,该数组直接支持List。

new ArrayList(Collection):从1.2开始,任何数量的对象都是可变的。
new ArrayList

汝才良
2023-03-14

java.util.Collections.singleton(对象)将给你一个不可变的Set

效率较低的java.util.rrays.asList(对象)会给你一个可变的(可以使用list.set(0, x);),但结构上不可更改(不能添加或删除)List .它有点贵,因为有一个额外的数组是在客户端创建的。

 类似资料:
  • 我试图写一个函数来排序一个对象集合。由于对象都是相同的类型(相同的用户定义类),因此它们的属性集是相同的。是否有可能(通过代码)发现对象的属性,以便将集合放在一个二维数组中,每行代表一个对象,每列代表它的一个属性? 另一种解决方案是将集合中的每个对象复制到对象数组中,并根据它们的一个属性对它们进行排序,该属性的名称作为字符串传递给函数。但是我不知道如何使用作为字符串传递的属性名来指向对象的属性。

  • 问题内容: 如果我有一个简单的字符串列表: 我可以对它进行排序: 但是假设我有一个Person类: 并列出: 我想有时按名称,有时按年龄,有时按国家对它进行排序。 最简单的方法是什么? 我知道我可以实现Comparable接口,但这似乎限制了我只能通过一个特定的属性对其进行排序。 问题答案: 可以使用自定义比较器调用Collections.sort。并且该比较器可以实现为允许以不同的排序顺序进行排

  • 本文向大家介绍html的DOM中document对象anchors集合用法实例,包括了html的DOM中document对象anchors集合用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了html的DOM中document对象anchors集合用法。分享给大家供大家参考。具体分析如下: anchors 集合可返回对文档中所有 Anchor 对象的引用。 语法: 例子: 希望本文所

  • 本文向大家介绍html的DOM中document对象images集合用法实例,包括了html的DOM中document对象images集合用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了html的DOM中document对象images集合用法。分享给大家供大家参考。具体分析如下: images 集合可返回对文档中所有 Image 对象的引用。 语法: 为了与 0 级 DOM 兼容

  • 本文向大家介绍html的DOM中document对象forms集合用法实例,包括了html的DOM中document对象forms集合用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了html的DOM中document对象forms集合用法。分享给大家供大家参考。具体分析如下: forms 集合可返回对文档中所有 Form 对象的引用。 语法: 例子: 希望本文所述对大家的javas

  • 定义 对象是 JavaScript 语言最主要的数据类型,三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”(wrapper)。 所谓“包装对象”,指的是与数值、字符串、布尔值分别相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。 var v1 = new Number(123)