2014-09-21 2 views
-3

Я учу себя Java, поэтому я могу программировать приложения для Android и сталкивался с необходимостью использовать пару ключевых значений, но не знаю, что это такое. Я попытался найти его, но не могу найти никаких хороших ресурсов, чтобы объяснить это.Что такое пара ключевых ценностей?

Может ли кто-нибудь объяснить это мне или указать мне на ресурс, где я могу его прочитать? Спасибо!

Редактировать: я смущен, так как это отличается от обычной переменной. Скажем, что переменная типа String указывает на объект или переменную int на значение int. Разве это не переменная «ключ», а объект «значение»

+0

Что говорит ваш учебник? – AntonH

+6

Что скажет интернет-поиск? Буквально миллионы хитов !! –

+0

Пара ключ-значение представляет собой два связанных элемента данных: ключ, который является уникальным идентификатором для некоторого элемента данных, и значение, которое является либо идентифицируемыми данными, либо указателем на местоположение этих данных. что все это – AlphaWolf

ответ

1

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

Однако чаще всего речь идет о парах ключ-значение в контексте отображения, то есть математической функции, которая отображает от ключа к соответствующему значению или значениям. В зависимости от свойств этого сопоставления вы можете ограничить набор пар ключ-значение. Например, для отображения от 1 до 1 вам нужно, чтобы ключи в наборе были уникальными.


Последующие вопросы:

Это так же, как массив?

Ну ... массив можно рассматривать как отображение из набора индексов (целых чисел) в значения. Но отображение является более общим. А в Java массивы имеют другие свойства, которые отличают их от Map ... и у них намного проще, быстрее и меньше памяти.

(Обратите внимание, что на некоторых языках нет типа данных типа «массив». Вместо этого примитив представляет собой «хэш» или «ассоциативный массив» ... который является более общей картой.)

И является ли ключ всегда строкой?

№ Ключ может быть любого типа.

Скажем переменную типа String указывает на объект или int переменные указывает на значение int. Разве эта переменная не является «ключом», а объект «значением»?

Нет. По крайней мере, не на статическом языке, таком как Java. Вещь, которая отличает пару «ключ-значение» от привязки переменной, заключается в том, что «ключевым» объектом являются данные и, следовательно, могут принимать разные значения. Напротив, имя переменной жестко связано с исходным кодом вашей программы: вы не можете изменить ее во время выполнения.

(На некоторых динамических языках вы можете динамически создавать новые переменные (во время выполнения), и для таких языков вы можете утверждать, что переменные являются парами ключ-значение в сопоставлении, представляющем область ... в какой-то момент но Java не так ...)

4

Пара ключей-значений - это два значения, которые обычно связаны таким образом, что к этому значению обращаются с помощью ключа. Они обычно используются в различных структур данных, чтобы обеспечить быстрый доступ к значениям Проверьте hashtable data structure, например (в Java, вы посмотрите на HashMap или Hashtable могут)

Например, предположим, что мы имеем структуру CartoonCharacter удерживающий упомянутые пары, как:.

bugs_bunny

Это соотношение ключ-значение будет выглядеть примерно так:

CartoonCharacter[lastName] = "Bunny"; 

Итак, если вы хотите, чтобы получить значение Bunny вы бы доступ к нему через замочную lastName.

key = "lastName" 
value = CartoonCharacter.get(key) 
print (value) // this would print "Bunny" 
+0

Теперь это становится мне более понятным. Но, это то же самое, что и массив? – RedMist

+0

Array - это индекс для оценки. Карта является ключом к значению – shinjw

+0

. Разница в том, что в паре ключевых значений я могу определить, что указывает на каждое значение, тогда как в массиве я не могу (это должен быть некоторый номер индекса)? И всегда ли ключ? – RedMist

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