我可以在集合中存储单个元素吗?

Sar*_*ara 5 java collections

我有一个DTO对象用于从我的服务器获取数据.它可以用于一个或多个元素.这个DTO封装了一个Collection包含数据.

当我的DTO只给我一个元素时,我应该如何存储它?

示例代码:

public class DataDTO implements Serializable
{
    private Collection<Data> data;

    public DataDTO()
    {
    }

    public Collection<Data> getData()
    {
        return data;
    }


    public void setData(Collection<Data> data)
    {
        this.data = data;
    }


    public void setData(Data singleData)
    {
        // At this time I use an ArrayList initialized with a capacity of 1
        this.data = new ArrayList<Data>(1);
        this.data.add(singleData);
    }
}
Run Code Online (Sandbox Code Playgroud)

278*_*184 14

您可以使用Collections类中的单例方法.

singletonList :返回仅包含指定对象的不可变列表.返回的列表是可序列化的.

singleton:返回仅包含指定对象的不可变集合.返回的集是可序列化的.

singletonMap:返回不可变映射,仅将指定键映射到指定值.返回的地图是可序列化的.


Flo*_*etz 5

问题是,你以后想做什么?您是否有机会添加另一个元素?如果没有,你可以使用

this.data = Collections.singletonList( singleData );

如果您以后可能想要添加元素,那么使用List实现的典型问题是,ArrayList适用于许多情况.