2013-02-27 3 views
1

В моем курсе Computer Science мы изучаем таблицы Lookup. Но наш учитель не представил никаких примеров на страницах уроков, которые он опубликовал, и видео, которое он предоставил. Все, что он сделал, это сказать нам, что это такое, но он хочет, чтобы мы использовали их в нашем следующем задании. Но он не дал нам примеров того, как это сделать. Мы узнали о массивах, прежде чем попали в таблицы поиска. Может кто-тоТаблицы поиска в Java?

  1. Скажите, пожалуйста, что таблица поиска? (Много деталей, пожалуйста?)
  2. Укажите несколько примеров таблицы поиска? Мы должны использовать Массивы?
+0

таблица поиска представляет собой таблицу с двумя столбцами (A и B) и многих строк , то при значении A вам нужно найти соответствующее значение B по таблице. –

+0

Вы исследовали 'HashMap' из библиотеки java' Collections'. – vikingsteve

+0

Мы еще не попали в Хэш. Однажды он упомянул об этом. Он сказал нам, что мы войдем в Хэш позже. –

ответ

7

Вы можете использовать карту для хранения пар ключ/значение и поиска значения по его ключ:

Map<Integer, String> map = new HashMap<>(); 
map.put(1, "Foo"); 
map.put(2, "Bar"); 
System.out.println(map.get(1)); // prints Foo 
3

Если вы должны использовать массивы, это просто и красиво.

int[] numbers = new int[5] // Initialise a new array with 5 "spaces". 
for(int x = 0; x < 5; x++) 
{ 
    numbers[x] = x; 
    // This will populate the array with 0,1,2,3 and 4. 
} 

Теперь, чтобы получить доступ к одному из этих номеров, вы используете его индекс. т.е.

int value = numbers[3]; // Will return 3. 

Таким образом, вы получаете доступ к значению в массиве, используя его индекс как «ключ».

+0

Мы немного использовали Массивы, но затем он просто выходит и говорит, чтобы начать использовать «Таблицу поиска». Итак ... это просто массив? Другое слово для массива? Я не понимаю эту концепцию. –

+1

Два недостатка: 1.) вы можете использовать только клавиши 'int', 2.) разреженные таблицы поиска (всего лишь с несколькими значениями) занимают много памяти. –

+0

Согласился, но он уточнил, что его учитель сказал ему использовать массив. Я согласен, что HashMap - более элегантное решение. – christopher

1

В моем понимании таблица поиска представляет собой способ, чтобы получить «значение» с данным «ключом» намного быстрее, чем итеративный поиск: например:

for(int x=0; x < 10; x++){ 
    if(x == n) { 
     return x; 
    } 
} 

это придется искать (в лучшем случае) 1/2 из 10, чтобы найти совпадающее значение «n». С помощью «lookupTable» вы переходите непосредственно к нужному значению без повторения, используя его «ключ».

Скажите, что вы искали тип переменной Java для заданного типа данных mySql. Вы можете использовать карту.

Map<String, String> lookUpTable = new Map<>(); 
lookUpTable.put("VARCHAR", "String"); 

Тогда вы могли бы найти значение преобразования для «VARCHAR» типа данных в Java, было бы

lookUpTable.get("VARCHAR"); // This would give you "String".