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

时间:2015-07-24 07:47:45

标签: 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);
    }
}

2 个答案:

答案 0 :(得分:14)

您可以使用集合类中的单例方法。

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

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

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

答案 1 :(得分:5)

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

this.data = Collections.singletonList( singleData );

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