Questions tagged «immutable-collections»

9
返回ImmutableMap还是Map更好?
假设我正在写一个应该返回Map的方法。例如: public Map<String, Integer> foo() { return new HashMap<String, Integer>(); } 考虑了一段时间后,我决定创建该地图后就没有理由对其进行修改。因此,我想返回一个ImmutableMap。 public Map<String, Integer> foo() { return ImmutableMap.of(); } 我应该将返回类型保留为通用Map,还是应该指定要返回ImmutableMap? 从一方面来说,这正是创建接口的原因。隐藏实施细节。 另一方面,如果我这样保留它,其他开发人员可能会错过这个对象是不可变的事实。因此,我不会实现不可变对象的主要目标。通过最小化可以更改的对象数量来使代码更清晰。更糟糕的是,过了一会儿,有人可能会尝试更改此对象,这将导致运行时错误(编译器不会对此发出警告)。

1
按键对ImmutableSortedDictionary范围进行枚举
我正在阅读有关C#的内容ImmutableSortedDictionary,System.Collections.Immutable并在考虑如何在程序中应用它。我非常喜欢C ++的lower_bound和upper_bound(请参阅此处),而我更希望看到某种范围查找。但是,文档中似乎缺少类似的方法。我想念什么吗?还是MS真正提供了分类字典,而没有有效访问分类范围?这似乎并不像可以对IEnumerable扩展方法那样对某个键进行某些操作,所以我有点困惑,因为我没有看到集合直接提供的某些功能。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.