2012-10-02 46 views
0

我想创建这样一个矩阵:访问矩阵的箱子

matrix

这是一个图形的一个矩阵,其中abc等等都是变换如果顶点被断开,则顶点和值代表0,如果它们连接,则代表1

我随机抽取两个顶点(即cd),我想访问矩阵中那些顶点的值M [c] [d],还有M [d] [c]。

我该怎么做?

+0

I变换graphe在一个矩阵,a,b,c ...是顶点,如果是独立的,则为1,如果是顶点依赖的话。然后我随机取两个顶点(exp:c和d),并且我想使用M [c] [d]和M [d] [c] – user1543915

+0

,但是就代码而言 - 你试过了吗? 你的数组是由什么组成的?字符,字符串,整数? 你如何尝试访问所需的单元格?等等等等! – peshkira

+0

所有单元格都是字符串 – user1543915

回答

1

如果trylly要使用字母(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

如果要使用整数指标,而不是字母,你就可以说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)

+0

不是我downvote! – user1543915

+0

谢谢@MyNameIsTooCommon和user1543915改变否定的投票:)。 – dan

0

矩阵访问它们将是一个二维数组

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

然后你可以使用填充它

matrix[1][1] = "1"; 

为了得到你想要的,你贵方觉得做电池

String val = mattix[3][5]; 

link可以帮助

+0

我已编辑我的问题 – user1543915