问题标签 [sparse-array]
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.
android - 为什么 Android JFC 中的 SparseArray 不兼容?
所以,为了性能,我应该使用 SparseArray 而不是 HashMap :
但是,SparseArray
不是JCF的一部分,也没有实现Collection
nor 。,另一方面,实现并提供了在需要与JCF兼容的行为时可以使用的功能。例如,在各种自定义排序中使用它(对于值)。List
Map
HashMap
Map
values()
ArrayAdapter
我的问题是三个方面:
- 为什么不
SparseArray
实现JCF接口?我的意思是,鉴于大多数方法已经存在,不实现这些接口的动机是什么? - 是否有
SparseArray
实现JCF接口的替代方案或可以轻松转换并保持SparseArray
性能? HashMap
有几百个元素的 s 真的那么慢吗?我的用户真的会注意到吗?
我正在寻找有深度的答案,我更喜欢参考权威网站。如果您认为您知道为什么SparseArray
没有使用 JCF 接口实现,请提供一些支持,帮助我理解。如果您认为我应该使用SparseArray
,请向我展示如何将其与ArrayAdapter
自定义排序一起使用(首选Comparator -esque 解决方案)。如果有更好的选择,API 文档、库或教程的链接会很有帮助。如果您认为我应该坚持使用HashMap
s,请解释为什么SparseArray
接口的需求超过了性能优势。
java - 如何初始化静态 SparseArray
我怎样才能初始化一个static
不可修改的实例android.util.SparseArray
?
arrays - Fortran 中的自动稀疏矩阵
我知道英特尔 Fortran 具有用于处理稀疏矩阵的函数和子例程的库,但我想知道是否还有某种数据类型或自动化方法可以首先创建稀疏矩阵。
背景:我有一个程序使用一些 3 和 4 维数组,这些数组在前 2 维中可能非常大(每个维度中大约 10k 到 100k 个元素,可能更多)。在前 2 个维度中,每个数组大多(95% 左右)填充了零。为了使程序对具有“正常”可用 RAM 量的机器友好,我想转换为稀疏矩阵。在整个代码中处理和更新当前常规数组的方式非常依赖于代码应用程序,因此我正在寻找一种无需对代码进行重大修改即可转换为稀疏矩阵存储的方法。基本上,我很懒惰,我不想修改整个内存管理实现或编写一个全新的模块来存放和管理我的数组。Fortran 是否有一个库或其他东西可以实现数据类型或其他东西,这样我就可以使用稀疏矩阵存储而无需重新设计每个数组以及如何处理它?谢谢您的帮助。干杯。
android - 为什么我的 SparseArray 返回一个元素为零的 ArrayList?
我正在遍历游标并填充包含来自游标的信息包的SparseArray
with ArrayList
:
紧接着,我遍历SparseArray
:
由于某些未知原因,Log()
上面的调用报告了alComp
零条目。我验证了当我进入.ArrayList.size()
时返回大于 0 的数字,所以在遍历. 到底是怎么回事?put()
SparseArray
SparseArray
c++ - 使用 SIMD (AVX2) 的稀疏数组压缩
我有一个稀疏数组a
(大部分为零):
我想创建一个索引数组,以在带有 AVX2 的英特尔 x64 架构上使用 SIMD 指令b
的非零元素。a
我正在寻找如何有效地做到这一点的提示。具体来说,是否有 SIMD 指令来获取 SIMD 寄存器中连续非零元素的位置,并连续排列?
c - 如何按升序创建链表
我得到一个名为“head”的稀疏数组,它是具有索引和值的二维数组。就像这样: (3, 100) (6,200) (8,100)
- 我必须按升序将一个节点(值,索引)插入到这个稀疏数组中。因此,如果给定 (2,100),则列表应如下所示: (2, 100) (3,100) (6,200) (8,100)
同样,如果给定我 (4,200),它应该返回 (3,100) (4,200) (6,200) (8,100)
条件1:如果索引相同,那么我必须添加值
所以如果给我 (3,100),那么我应该返回 (3,200) (6,200) (8,100)
条件2:如果索引相同,并且值为零,则应删除该值。所以如果数组是(3,-100),我必须返回
(6,200) (8,100)
我的理解是,当我制作 head->next 新头时,应该摆脱原来的条目。
但是 0 值索引继续保留在列表中。结果是 (3,0) (6,200) (8,100)
如果有人可以帮助我弄清楚我做错了什么(甚至可能是为什么),我将不胜感激。
matlab - matlab:任何矩阵的稀疏函数
我正在尝试为任何矩阵大小编写一个稀疏函数代码。例如,如果我有一个矩阵:
S --> 是 A 矩阵的所有非零元素的存储矩阵。除了这些信息(索引、行号、列号、值)之外,我如何在矩阵中包含另外两列,显示行中的下一个元素和列中的下一个元素。
matlab - Matlab:每行或每列的第一个非零元素
例如,
如何获得每行的第一个非零元素的向量?
r - 查找表中重复两次以上的值
我正在尝试做一些在 SQL 中可能用“...have count(ID) > 2 ...”来完成的事情
我想在重复两次以上的数据框的两列子集中找到 col 的那些值。该函数table
为我提供了稀疏矩阵,我不确定如何将其结果调整为我想要的。对于矩阵,rowSums
会找到我的总数,但我想要与标识符关联的总数。
数据集 mtcars 更清楚地显示了我的意思。
对于这个 20 行的数据框,我想要的结果是: