假设我们有如下整数:
(1, 2)=10,
(2,3)=20,
(3, 4)=30
等等……
这些整数分布在一个维度为 2000*2000
的矩阵中。
但我只需要该矩阵的 4000-6000 个元素及其索引(即它们的位置 (i, j))。矩阵中的其他元素为零。所以我不需要它们。 除了使用二维 Array/ArrayList 之外,是否有其他好的方法来保存这些元素及其索引,因为我们可以轻松地调用和重用元素及其索引?
使用 Array/ArrayList 会消耗大量内存。
最佳答案
拥有这样大小的二维数组会浪费内存,因为它有 4,000,000 个元素。因为您只需要 4000-6000 个元素,所以这个数组会非常稀疏。
您可以使用 HashMap
将 Point
映射到 Integer
。
Map<Point, Integer> points = new HashMap<>();
您需要确保您有一个 Point
类可以正确覆盖 hashcode
和 equals
。
HashMap
只会存储您放入
其中的 4000-6000 个点。
关于java - 除了 Array/ArrayList 之外,还有其他方法可以保存矩阵的元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884254/