访问Matrix的框

时间:2012-10-02 19:58:20

标签: java

我想创建一个像这样的矩阵:

matrix

这是矩阵中图形的变换,其中abc等是顶点,如果顶点断开,则值表示0如果他们已联系,则1

我采用两个顶点randomply(即cd)并且我想要将矩阵中的那些顶点的值作为M [c] [d]来访问,并且还有,M并[d] [C]。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

如果您将使用整数索引而不是字母,则可以说m[2][3],如果矩阵定义为:int[][] m;

如果需要使用字符串坐标访问值,可能应该查看Guava中的Table类,请参阅:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Table.html。 这样,您就可以声明您的矩阵:Table<String,String,String>并使用put(String rowKey, String columnKey, String value)方法插入值并使用get(String rowKey, String columnKey)

访问它们

答案 1 :(得分:1)

如果你想尝试使用字母(chars)作为索引,那么你将不得不采取另一种方法。您可以创建自己的结构,将char作为索引。由于二维数组可以看作是一个数组数组,因此可以使用MapMap个对象。

您将无法以此期望的方式访问对象,而是必须调用map.get('c').get('d')

另一种方法是创建一种“{rosetta stone”,将char转换为相应的索引。这对于小图表特别有用,因为大图表生成内部矩阵并在那里获得索引取决于您将如何解决它们。例如:

public class IndexInterpreter {

    //Using a switch here to illustrate, you can make your own mapping logic.
    public static int getIndex(char letter) {
        switch(letter) {
            case 'a':
                return 0;
            case 'b':
                return 1;
            //the swtich goes on and on...         
        }
    }
}

然后,在调用矩阵时,您只需将字母转换为相应的索引:

int i1 = IndexInterpreter.getIndex('c');
int i2 = IndexInterpreter.getIndex('d');  
m[i1][i2]

或者,如果你愿意

m[IndexInterpreter.getIndex('c')][IndexInterpreter.getIndex('d')]

答案 2 :(得分:0)

矩阵将是一个二维数组

String[][] matrix = new String[6][7]

然后您可以使用

填充它
matrix[1][1] = "1";

要获得你想要的单元格

String val = mattix[3][5];

link可能会有所帮助