Java 实现具有字符串数据类型的2D矩阵的最佳数据结构是什么?

Java 实现具有字符串数据类型的2D矩阵的最佳数据结构是什么?,java,data-structures,Java,Data Structures,我有150行10列的巨大表数据,每列都有字符串数据。在存储数据之后,我还必须遍历以找到一个特定的值。因此,我希望在性能、遍历的灵活性方面找到本例中最佳数据结构的答案 我想到了数组、ArrayList、Hashmap 另外,我在SO上发现了类似的问题,但它们没有回答我的问题 编辑:数据是字母和整数的混合体。无法排序,并且包含重复项。番石榴有一个看起来可以使用的结构,它有查找特定值的方法,您也可以遍历它 下面是表的概述: 通常,当您试图一次索引多个键时,您将得到类似于Map的东西,这很难使用。Gua

我有150行10列的巨大表数据,每列都有字符串数据。在存储数据之后,我还必须遍历以找到一个特定的值。因此,我希望在性能、遍历的灵活性方面找到本例中最佳数据结构的答案

我想到了数组、ArrayList、Hashmap

另外,我在SO上发现了类似的问题,但它们没有回答我的问题

编辑:数据是字母和整数的混合体。无法排序,并且包含重复项。

番石榴有一个看起来可以使用的结构,它有查找特定值的方法,您也可以遍历它

下面是
表的概述:

通常,当您试图一次索引多个键时,您将得到类似于
Map
的东西,这很难使用。Guava提供了一个新的集合类型Table,它支持任何“行”类型和“列”类型的用例

您可能最感兴趣的是
接口的以下实现:

ArrayTable
,它要求在构造时指定行和列的完整范围,但由二维数组支持,以在表密集时提高速度和内存效率<代码>阵列表
的工作原理与其他实现有所不同


在本例中,我将使用字符串[],因为您可以访问复杂度为O(1)的元素


但正如我所说,只有在这种情况下。如果行或列的数量是动态修改的,那么我会使用
List
,更确切地说,ArrayList

这样的表大小组合
2darray[][]+Hashmap
将是一个很好的选择。简单有效

数组包含值并允许以任何顺序遍历表

HashMap包含对
(数组中的坐标-行/列对)

如果您只需要知道表格是否包含一些字符串,那么不要在地图中存储坐标


我认为@krzyk提出的
Guava表
提供了类似的功能(不知道性能)

可能重复您需要多久遍历一次?150*10真的不是什么大问题,除非你遍历它数千次。在这种情况下,您应该更好地指定用例。您必须更多地描述-需要哪些操作?数组最适合遍历。但是你需要搜索吗?Add(extensing limits)?@IngoBürk-假设它在一个程序运行中是10次。请注意,作者还需要
来找到一个特定的值
yes,并且在任何一种情况下,他都可以使用数组来找到它,如下所示:array[43][54],而使用arraylist则如下所示:list.get(43).get(54)您正在写关于从特定单元格获取值的内容。若要查找无序数组是否包含给定字符串,应该遍历所有C*R单元格,您是对的,但不幸的是,我想不出更好的解决方案,但您的解决方案应该比我的更好