我有一个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);
}
}
答案 0 :(得分:14)
您可以使用集合类中的单例方法。
singletonList :返回仅包含指定对象的不可变列表。返回的列表是可序列化的。
singleton :返回仅包含指定对象的不可变集。返回的集合是可序列化的。
singletonMap :返回不可变映射,仅将指定键映射到指定值。返回的地图是可序列化的。
答案 1 :(得分:5)
问题是,你以后想用它做什么?您是否有机会添加另一个元素?如果没有,你可以使用
this.data = Collections.singletonList( singleData );
如果您以后可能想要添加元素,那么使用List实现的典型问题是,ArrayList在许多情况下都没问题。