我可以在Java中使用什么数据结构用于表?

时间:2012-05-11 08:37:56

标签: java data-structures collections

我需要存储作为表格的数据,我可以在Java中使用什么来做它?

构成列和行的键是Object,所以我需要一个可以表示为三元组的结构:<Object Row,Object Col, Object Val>其中对于每一行,Col只有一个val,而对于所有Row X Col,有一个值。

或者我应该使用简单的二维数组并将索引转换为相应的对象?

3 个答案:

答案 0 :(得分:8)

Guava提供了一个Table集合,可能就是您所需要的。有关详细信息,请参阅Guava User Guide

使用示例:

Table<Integer, Integer, Object> myTable = HashBasedTable.create();
myTable.put(1, 2, "foo"); // put an object in row 1, column 2.

如果您不想使用Guava,只需使用二维数组,如下所示:

Object[][] myTable2 = new Object[5][5];
myTable2[0][1] = "foo";

答案 1 :(得分:3)

如果Guava不是一个选项,我会使用Map<Coordinate, Val>,其中Coordinate是一个包含行和列对象的自定义对象,并正确实现equals和hashCode。

答案 2 :(得分:1)

HashMap<Object, ArrayList> myTable = new HashMap<Object, ArrayList>();