我知道LinkedHashMap有一个可预测的迭代顺序(插入顺序).是否Set通过返回LinkedHashMap.keySet()和Collection返回的LinkedHashMap.values()也维持这种秩序?
我有一个对象,它将一些数据存储在列表中.实现可能会在以后更改,我不希望将内部实现公开给最终用户.但是,用户必须能够修改和访问此数据集.目前我有这样的事情:
public List<SomeDataType> getData() {
return this.data;
}
public void setData(List<SomeDataType> data) {
this.data = data;
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着我已经允许内部实现细节泄漏?我应该这样做吗?
public Collection<SomeDataType> getData() {
return this.data;
}
public void setData(Collection<SomeDataType> data) {
this.data = new ArrayList<SomeDataType>(data);
}
Run Code Online (Sandbox Code Playgroud)