Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于在集合中包装对象的实用方法_Java_Collections - Fatal编程技术网

Java 用于在集合中包装对象的实用方法

Java 用于在集合中包装对象的实用方法,java,collections,Java,Collections,我正在Java核心库中寻找一个静态方法,或者其他一些常用的依赖项(最好是Apache的依赖项),它可以执行以下操作: public static <T> Collection<T> wrap(final T object){ final Collection<T> collection = new ArrayList<T>(); collection.add(object); return collection; } pu

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

public static <T> Collection<T> wrap(final T object){
    final Collection<T> collection = new ArrayList<T>();
    collection.add(object);
    return collection;
}
publicstaticcollectionwrap(最终的T对象){
最终集合集合=新的ArrayList();
集合。添加(对象);
回收;
}

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

不要害怕自己写东西。据我所知,它并不存在。我认为这样做的一个原因是实用程序方法决定了它使用哪个集合实现。在您的案例中,您选择了ArrayList,但还有一大堆其他集合。

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


java.util.Collections.singleton(object)
将为您提供一个不可变的
Set
<代码>单音列表也可用


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

java.util.Collections.singletonList()或singleton()。但请注意,结果是不可变的

以下是一些在列表中包装Java对象的有效方法,如Java8

集合。:单个项目,不可变,自1.3版起
Collections.singletonList(对象)

由内部类支持的高性能

集合。:一个对象,零到多个项目,自1.2以来不可变
Collections.nCopies(拷贝数,对象)

由内部类支持的高性能。所有项目都指向同一对象

数组。:从1.2开始,任意数量的对象,大小不变(单个元素可变)
Arrays.asList(object1、object2、object3)

由内部类支持。项目转换为数组,此数组直接支持列表

新建:自1.2以来,任意数量的对象,可更改
新建ArrayList(Arrays.asList(object1、object2、object3))


ArrayList是用an和an创建的,因此不使用任何循环。

谢谢您的提示,但不幸的是我不能使用Guava。还有
集合。singletonList(对象)
public static <E> ImmutableList<E> of(E element)