0

私は多次元int配列を持っています。ユーザーが特定の数値を選択すると、その数値が多次元配列の最初の列に配置されます。その数値が見つかるとint、コンストラクターを初期化するために、その矢印のすべての値が抽出されます。

これが私の配列です:

int[][] enc_table = {{2, 9, 4}, 
{3, 16, 5}, 
{4, 22, 6}, 
{5, 29, 7},
{6, 35, 8},
{7, 42, 9},
{8, 48, 10},
{9, 55, 11},
{10, 61, 12},
{11, 68, 13},
{12, 75, 14},
{13, 81, 15},
{14, 88, 16},
{15, 94, 17}}; 

たとえば、ユーザーが 3 を入力した場合、列 0 で「3」を検索し、それが見つかると、「16」と「5」の値を自動的に抽出して別のint変数として保存します。私は多次元配列にあまり慣れていないので、どんな助けも役に立ちます。私もHashSets を読んでいますが、私の目的のためにそれを使用することに成功していません:(

4

2 に答える 2

1

enc_table by rowを反復処理する必要があります。次に、各行で、最初の列の要素が探している数と等しいかどうかをテストします。もしそうなら、それを返します。

public int[] getRow(int searchNumber) {
    for (int i=0; i<enc_table.length; i++) {
        if (enc_table[i][0] == searchNumber) {
            return enc_table[i];    
        }
    } 
    return null;
}
于 2013-06-24T14:45:31.857 に答える
0

行全体をint[]次のように抽出するのがおそらく最も簡単でしょう。

int n = 3;
int[] match = null;

for (int[] row : enc_table) {
    if (row[0] == n) {
        match = row;
        break;
    }
}

最後の のは、最初の列で が見つからなかったことmatchnull示します。n

于 2013-06-24T14:45:49.897 に答える