问题标签 [collections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
4378 浏览

c# - 从字符串成员的条件匹配的集合中查找对象的最快方法

假设我有一个特定类的集合(可以是数组、通用列表或任何最快解决此问题的方法),我们称之为ClassFoo

假设集合中将有 50.000 个项目,全部在内存中。现在我想尽可能快地获取集合中遵守其 bar 成员条件的所有实例,例如:

如何尽快获得结果?我应该考虑一些高级索引技术和数据结构吗?

此问题的应用程序域是一个自动完成器,它获取查询并作为结果提供一组建议。假设条件没有比这更复杂。还假设会有很多搜索。

0 投票
15 回答
1119 浏览

java - 您最喜欢的 Java API 领域是什么?

我很想知道其他 Java 程序员觉得他们最喜欢这门语言的什么部分,为什么他们会有这种感觉,以及为什么其他程序员也应该对它有深入的了解。我正在寻找简单、性能等原因。谢谢。

0 投票
9 回答
33670 浏览

c# - 通过反射访问集合

有没有办法使用反射对集合进行迭代(最好通过 foreach)?我正在使用反射迭代对象中的属性,当程序到达一个集合类型时,我希望它迭代集合的内容并能够访问集合中的对象。

目前,我在所有属性上都设置了一个属性,在作为集合的属性上将 IsCollection 标志设置为 true。我的代码检查这个标志,如果它是真的,它使用反射获取类型。有没有办法在集合上以某种方式调用 GetEnumerator 或 Items 以便能够迭代项目?

0 投票
10 回答
18888 浏览

java - 为什么 Java 集合不删除通用方法?

为什么Collection.remove(Object o)不是通用的?

好像Collection<E>可以有boolean remove(E o);

然后,当您不小心尝试从 a 中删除(例如)Set<String>而不是每个单独的 String 时Collection<String>,这将是编译时错误,而不是稍后的调试问题。

0 投票
9 回答
1450 浏览

c++ - 这是封装集合的好(正确)方法吗?

虽然 msdn 说不std::list应该在删除或插入时执行元素重定位,但返回指向列表元素的指针是否是一种好的和常用的方法?

PS:我知道我可以使用指针集合(并且必须使用delete析构函数中的元素),共享指针集合(我不喜欢)等。

0 投票
62 回答
1591355 浏览

java - 对地图进行排序按价值观

我对 Java 比较陌生,经常发现我需要对Map<Key, Value>值进行排序。

由于这些值不是唯一的,我发现自己将 转换keySet为,并使用自定义比较器array通过数组排序对该数组进行排序,该比较器对与键关联的值进行排序。

有没有更简单的方法?

0 投票
6 回答
633 浏览

.net - 逻辑及其在 Collections.Generic 和继承中的应用

一切都继承自对象。这是继承的基础。一切都可以隐式地投射到继承树上,即。

因此,按照其逻辑结论,一组人也将是一组对象:

除了那行不通,设计 .NET 的人要么忽略了这一点,要么是有原因的,我不确定是哪一个。至少有一次我遇到了这很有用的情况,但我最终不得不使用一个讨厌的 hack(子类化 List 只是为了实现一个强制转换运算符)。

问题是:这种行为有原因吗?是否有更简单的解决方案来获得所需的行为?

作为记录,我相信我想要这种行为的情况是一个通用的打印函数,它通过调用 ToString() 并很好地格式化字符串来显示对象列表。

0 投票
5 回答
670 浏览

.net - 在 .NET 中,确定 IEnumerable 是否为空的可靠、优雅、可重用的代码是什么?

我正在尝试找到最可重用但最优雅的代码段,用于确定是否为 IEnumerable。理想情况下,这应该是一个我可以在需要判断 IEnumerable 是否为空时绝对调用的函数。

虽然我已经为 .NET 3.5 开发了一个到目前为止对我来说效果很好的答案,但我目前的想法是没有完美的答案,因为 IEnumerable 可以在技术上封装一个集合(或迭代器队列),将底层结果修改为它会迭代,这会导致问题。但是,这也会成为实现 IEnumerable.Count() 的障碍,但这并没有阻止 MS 提供它。

所以我想我会把它交给 SO 看看是否有人有更好的,以防其他人发现它有用。

编辑: 哇,我不敢相信我不知道 IEnumerable.Any。我知道它存在,但从来没有费心去检查它做了什么。让这成为一个教训。阅读文档。仅仅因为方法名称并不意味着它会做你想做的事,并不意味着它不会做你想做的事。

0 投票
29 回答
737196 浏览

java - 如何过滤 Java 集合(基于谓词)?

我想java.util.Collection根据谓词过滤 a 。

0 投票
8 回答
14631 浏览

c# - 测试对象是否是 C# 中的字典

有没有办法测试一个对象是否是字典?

在一种方法中,我试图从列表框中的选定项目中获取值。在某些情况下,列表框可​​能绑定到字典,但这在编译时是未知的。

我想做类似的事情:

有没有办法在运行时使用反射动态地做到这一点?我知道可以将反射与泛型类型一起使用并确定键/值参数,但我不确定在检索到这些值之后是否有办法完成其余的工作。