当前位置: 首页 > 面试题库 >

使用列表或集合更好吗?

郑宜民
2023-03-14
问题内容

我有一个在列表中存储一些数据的对象。该实现可能会在以后更改,并且我不想向最终用户公开内部实现。但是,用户必须具有修改和访问此数据集合的能力。目前我有这样的事情:

public List<SomeDataType> getData() {
   return this.data;
}

public void setData(List<SomeDataType> data) {
   this.data = data;
}

这是否意味着我已允许内部实施细节泄漏出去?我应该这样做吗?

public Collection<SomeDataType> getData() {
   return this.data;
}

public void setData(Collection<SomeDataType> data) {
   this.data = new ArrayList<SomeDataType>(data);
}

问题答案:

这仅取决于您是否希望您的用户能够索引数据?如果是,请使用列表。两者都是接口,因此您不会泄漏实现细节,实际上,您只需要确定所需的最低功能即可。



 类似资料:
  • 我正在使用skLearning TfidfVectorzer进行文本分类。 我知道这个矢量器需要原始文本作为输入,但使用列表是可行的(请参见input1)。 但是,如果我想使用多个列表(或集合),我会得到以下属性错误。 有人知道如何解决这个问题吗?提前谢谢! Traceback(最近一次调用):File",第1行,在File"/库/框架/Python.framework/Versions/3.5/

  • 问题内容: 我目前正在使用“设置”结构使用Redis。 我想知道是否有可能自动清理空的“ set”吗? 否则找到一个cron /进程来定期清理空的“ set” 更新: 更笼统的问题是,“(nil)”和“(空列表或集合)”之间存在差异(内存使用情况) 例: 要么 问题答案: 这已经是自动的。如果集合为空,则将其从名称空间中删除。 您不必执行任何特定操作即可从此行为中受益。 要回答第二个问题,(nil

  • Java 8有一个函数< code > CompletableFuture . allof(CompletableFuture 但是,我几乎总是不处理,而是有一个

  • 来自Java背景:“克隆”省道、和的推荐方法是什么?

  • 问题内容: 以下哪个更适合使用,为什么? 方法1: 方法2: 我倾向于通向第一个更容易理解,但这可能只是因为我是Python的新手,并且列表理解对我来说仍然有些陌生。第二种方法是否更像Pythonic?我假设没有性能差异,但是我可能是错的。这两种技术的优缺点是什么? (从 Dive到Python的代码 ) 问题答案: 如果迭代是出于其副作用而进行的(如“打印”示例中所示),则循环更加清晰。 如果执

  • 我基于这个例子测试了一个小的OSX应用程序,它使用到AppleScript的桥梁从iTunes获取简单的信息。 就像我在ComboDrums的评论中说的(是我),我有一个脚本可以将我所有的iTunes播放列表放在树上,但是一旦返回比简单的字符串更复杂,它就会失败。 因此,我正在寻找一种方法,将AppleScript的列表返回到一个Swift友好对象。 有什么想法吗? 谢谢。 脚本: