0

次のようなマトリックスを作成したいと思います。

マトリックス

これは、、、などが頂点であり、値が頂点が切断されているかどうか、および頂点が接続aされているかどうかを表すb、マトリックス内のグラフの変換です。c01

2つの頂点(つまりcd)をランダムに取得し、マトリックス内のそれらの頂点の値にM[c][d]およびM[d][c]としてアクセスしたいと思います。

これどうやってするの?

4

3 に答える 3

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)

于 2012-10-02T20:01:08.313 に答える
1

文字()をインデックスとして使用したい場合charsは、別の方法をとる必要があります。charインデックスとして使用する独自の構造を作成できます。2次元配列は配列の配列と見なすことができるため、MapまたはMapオブジェクトを使用できます。

これで期待どおりにオブジェクトにアクセスすることはできません。代わりに、を呼び出す必要がありますmap.get('c').get('d')

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')]
于 2012-10-02T20:19:09.430 に答える
0

マトリックスは2D配列になります

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

次に、を使用してデータを入力できます

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

あなたがしたい細胞を手に入れるために

String val = mattix[3][5];

このリンクは役立つかもしれません

于 2012-10-02T20:06:01.230 に答える