2017-01-13 2 views
1

データテーブルの形式で格納および取得データ、次のようになります。でこれを格納するための良い方法は何のJava 8:私は、データテーブルの形式で格納するデータをたい

+--------+-------+-----+-----+ 
|  | s1 | s2 | s3 | 
+--------+-------+-----+-----+ 
| c1 | 5 | 7 | 7 | 
+--------+-------+-----+-----+ 
| c2 | 1 | 6 | 9 | 
+--------+-------+-----+-----+ 
| c3 | 0 | 9 | 6 | 
+--------+-------+-----+-----+ 

私はそのキーでデータを取得することができます。

私はこのようになります方法が必要になります。それを解決するために

public int getData(String row, String column); 

// Example: 
int i = getData("c1", "s1") // Would return 5 
+1

3つの列はすべてs1と呼ばれますか? – pringi

+0

[最小限、完全で検証可能な例](http://stackoverflow.com/help/mcve)を提供してください。 – Landaida

+0

@pringiいいえ彼らはすべて入力が異なる – Nibor

答えて

1

一つの方法は、このようなデータ構造である:

Map<String, Map<String, Integer>> map; 
0

いずれかの2次元地図

Map<String, Map<String, Integer>> map; 

public int getData(String row, String column) { 
    return map.get(row).get(column); // can lead to NullPointerException 
} 

か、2次元配列を使用することができます。

int[][] array = new int[10][12]; 

public int getData(String row, String column) { 
    int x = ...; // get index from string 
    int y = ...; // get index from string 
    return array[x][y]; 
} 

テーブルの構造があまりにも頻繁にしている場合は変更されません場合は、2番目のアプローチは、唯一の実行可能です文字列のインデックスを解析できます。

関連する問題