2017-01-13 10 views
1

я хотел хранить данные в виде таблицы данных, которая выглядит следующим образом:Java 8: хранить и извлекать данные в виде таблицы данных

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

Что такое хороший способ хранить это в java, так что я могу получить данные по их ключам.

мне нужен метод, который выглядит следующим образом:

public int getData(String row, String column); 

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

Все три столбца называются s1? – pringi

+0

Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Landaida

+0

@pringi нет, они все разные, thx для ввода – Nibor

ответ

1

Один из способов решить, что это со структурой данных, как это:

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

Либо двухмерная карта

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

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

или вы можете использовать два двумерный массив:

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]; 
} 

Второй подход является единственным жизнеспособным, если структура таблицы не меняется слишком часто, и если вы может анализировать индекс из строк.

 Смежные вопросы

  • Нет связанных вопросов^_^