当前位置:  开发笔记 > 编程语言 > 正文

什么数据结构最适合在Java中实现二维数组?

如何解决《什么数据结构最适合在Java中实现二维数组?》经验,为你挑选了1个好方法。

我想实现一个2-D数组的东西.

什么数据结构最适合这个?数组或其他数据结构都可以.如果有任何其他数据结构满足我的要求,请告诉我.

我不想使用数组,因为2-D数组需要在程序的早期声明,但它不是固定的; 大小将在运行时确定.

此外,行数将等于列数; 这是固定的,因为行和列都将使用相同的名称.

我也希望遍历这个二维数据结构,就像我通过Map一样.



1> Nikhil Chell..:

听起来你想要使用行键,col键,然后使用该位置的值.没有内置的数据结构可以为您做到这一点.

最简单的使用方法可能是实际数据的二维数组.使用以下内容从行或列名称到数组中的实际索引.根据需要添加任意数量的名称到索引绑定.

Map rows = new HashMap();
Map cols = new HashMap();

然后在网格中获取该值...

grid[rows.get("Row name")][cols.get("Column name")];

get(String rowName, String colName)如果您想要更干净的API,请将网格和方法放在类中.

编辑:我看到问题已经更新,看起来行和列的名称到索引对是相同的.所以这是一个更新版本:

class SquareMap {
    private V[][] grid;
    private Map indexes;

    public SquareMap(int size) {
        grid = (V[][]) new Object[size][size];
        indexes = new HashMap();
    }

    public void setIndex(String name, int index) {
        indexes.put(name, index);
    }

    public void set(String row, String col, V value) {
        grid[indexes.get(row)][indexes.get(col)] = value;
    }
    public V get(String row, String col) {
        return grid[indexes.get(row)][indexes.get(col)];
    }
}

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有