问题标签 [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.

0 投票
2 回答
2233 浏览

android - Android 稀疏数组> 初始化

我必须使用两个键和一个值来实现类似 Hashmap 的分类,比如说Hashmap<K1, K2, V>,其中两个键是整数,值是我定义的通用 MyObject。

我读了这个这个这个帖子,我也知道 guava 项目提供了表格接口,但我不想使用外部库(如果不是严格必要的话)来让我的项目尽可能小。所以我决定使用 SparseArrays:我认为这是更好的选择,因为我的键是 int 并且不一定从零开始并增加。

我这样做初始化:

现在让我们进入正题。我可以做这种操作吗:

还是我应该做类似的事情:

换句话说:我是否用这一行初始化两个 SparseArrays?

你认为我的情况有更好的实现吗?

0 投票
2 回答
553 浏览

android - 为什么 Android JFC 中的 SparseArray 不兼容?

所以,为了性能,我应该使用 SparseArray 而不是 HashMap :

但是,SparseArray不是JCF的一部分,也没有实现Collectionnor 。,另一方面,实现并提供了在需要与JCF兼容的行为时可以使用的功能。例如,在各种自定义排序中使用它(对于值)。ListMapHashMapMapvalues()ArrayAdapter

我的问题是三个方面:

  1. 为什么不SparseArray实现JCF接口?我的意思是,鉴于大多数方法已经存在,不实现这些接口的动机是什么?
  2. 是否有SparseArray实现JCF接口的替代方案或可以轻松转换并保持SparseArray性能?
  3. HashMap有几百个元素的 s 真的那么慢吗?我的用户真的会注意到吗?

我正在寻找有深度的答案,我更喜欢参考权威网站。如果您认为您知道为什么SparseArray没有使用 JCF 接口实现,请提供一些支持,帮助我理解。如果您认为我应该使用SparseArray,请向我展示如何将其与ArrayAdapter自定义排序一起使用(首选Comparator -esque 解决方案)。如果有更好的选择,API 文档、库或教程的链接会很有帮助。如果您认为我应该坚持使用HashMaps,请解释为什么SparseArray接口的需求超过了性能优势。

0 投票
3 回答
7568 浏览

java - 如何初始化静态 SparseArray

我怎样才能初始化一个static不可修改的实例android.util.SparseArray

0 投票
1 回答
604 浏览

arrays - Fortran 中的自动稀疏矩阵

我知道英特尔 Fortran 具有用于处理稀疏矩阵的函数和子例程的库,但我想知道是否还有某种数据类型或自动化方法可以首先创建稀疏矩阵。

背景:我有一个程序使用一些 3 和 4 维数组,这些数组在前 2 维中可能非常大(每个维度中大约 10k 到 100k 个元素,可能更多)。在前 2 个维度中,每个数组大多(95% 左右)填充了零。为了使程序对具有“正常”可用 RAM 量的机器友好,我想转换为稀疏矩阵。在整个代码中处理和更新当前常规数组的方式非常依赖于代码应用程序,因此我正在寻找一种无需对代码进行重大修改即可转换为稀疏矩阵存储的方法。基本上,我很懒惰,我不想修改整个内存管理实现或编写一个全新的模块来存放和管理我的数组。Fortran 是否有一个库或其他东西可以实现数据类型或其他东西,这样我就可以使用稀疏矩阵存储而无需重新设计每个数组以及如何处理它?谢谢您的帮助。干杯。

0 投票
1 回答
882 浏览

android - 为什么我的 SparseArray 返回一个元素为零的 ArrayList?

我正在遍历游标并填充包含来自游标的信息包的SparseArraywith ArrayList

紧接着,我遍历SparseArray

由于某些未知原因,Log()上面的调用报告了alComp条目。我验证了当我进入.ArrayList.size()时返回大于 0 的数字,所以在遍历. 到底是怎么回事?put()SparseArraySparseArray

0 投票
3 回答
2457 浏览

c++ - 使用 SIMD (AVX2) 的稀疏数组压缩

我有一个稀疏数组a(大部分为零):

我想创建一个索引数组,以在带有 AVX2 的英特尔 x64 架构上使用 SIMD 指令b的非零元素。a我正在寻找如何有效地做到这一点的提示。具体来说,是否有 SIMD 指令来获取 SIMD 寄存器中连续非零元素的位置,并连续排列?

0 投票
2 回答
1017 浏览

c - 如何按升序创建链表

我得到一个名为“head”的稀疏数组,它是具有索引和值的二维数组。就像这样: (3, 100) (6,200) (8,100)

  1. 我必须按升序将一个节点(值,索引)插入到这个稀疏数组中。因此,如果给定 (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)

如果有人可以帮助我弄清楚我做错了什么(甚至可能是为什么),我将不胜感激。

0 投票
2 回答
931 浏览

matlab - matlab:任何矩阵的稀疏函数

我正在尝试为任何矩阵大小编写一个稀疏函数代码。例如,如果我有一个矩阵:

S --> 是 A 矩阵的所有非零元素的存储矩阵。除了这些信息(索引、行号、列号、值)之外,我如何在矩阵中包含另外两列,显示行中的下一个元素和列中的下一个元素。

0 投票
3 回答
14255 浏览

matlab - Matlab:每行或每列的第一个非零元素

例如,

如何获得每行的第一个非零元素的向量?

0 投票
1 回答
1030 浏览

r - 查找表中重复两次以上的值

我正在尝试做一些在 SQL 中可能用“...have count(ID) > 2 ...”来完成的事情

我想在重复两次以上的数据框的两列子集中找到 col 的那些值。该函数table为我提供了稀疏矩阵,我不确定如何将其结果调整为我想要的。对于矩阵,rowSums会找到我的总数,但我想要与标识符关联的总数。

数据集 mtcars 更清楚地显示了我的意思。

对于这个 20 行的数据框,我想要的结果是: