java - 除了 Array/ArrayList 之外,还有其他方法可以保存矩阵的元素吗

标签 java arrays matrix arraylist

假设我们有如下整数: (1, 2)=10, (2,3)=20, (3, 4)=30 等等……

这些整数分布在一个维度为 2000*2000 的矩阵中。

但我只需要该矩阵的 4000-6000 个元素及其索引(即它们的位置 (i, j))。矩阵中的其他元素为零。所以我不需要它们。 除了使用二维 Array/ArrayList 之外,是否有其他好的方法来保存这些元素及其索引,因为我们可以轻松地调用和重用元素及其索引?

使用 Array/ArrayList 会消耗大量内存。

最佳答案

拥有这样大小的二维数组会浪费内存,因为它有 4,000,000 个元素。因为您只需要 4000-6000 个元素,所以这个数组会非常稀疏。

您可以使用 HashMapPoint 映射到 Integer

Map<Point, Integer> points = new HashMap<>();

您需要确保您有一个 Point 类可以正确覆盖 hashcodeequals

HashMap 只会存储您放入其中的 4000-6000 个点。

关于java - 除了 Array/ArrayList 之外,还有其他方法可以保存矩阵的元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884254/

相关文章:

java - 何时在 Spring Boot 中使用自定义上下文路径而不是根上下文

java - 富人脸树问题

java - 异步 Javascript 加载中的挑战

java - 将字符数组列表转换为字符串的最佳方法

matlab - 使用combvec获得完整矩阵(matlab)

java - 有多种方法做同样的事情

C++ 检查 float

arrays - SwiftUI 大数组(超过 3 万个元素)需要永远迭代

python - 如何使用 Julia 查找矩阵中的连通分量

将 R 代码转换为 C 代码