Прежде чем говорить о разнице между парой и HashMap, позвольте мне рассказать вам, почему на самом деле вы не отвечаете на этот вопрос. То, что вы действительно хотите знать, - это то, почему вы возьмете объект и разделите его на список примитивов key/value.
Код, который вы ссылаетесь, преобразование из объектно-ориентированного подхода с использованием класса Patient
(который на самом деле выглядит, как он должен называться PatientInfo
) в список примитивов, они essentialy «deObjectOrienting» класс.
Таким образом, в своей модели каждая переменная класса становится Pair
, где имя переменной становится ключом, а значение переменной становится значением.
Вот растянутый пример класс
// Old style (Object oriented)
class PatientInfo{
String religion;
String address;
}
PatientInfo patientInfo = new PatientInfo();
patientInfo.setReligion("myReligionName");
patientInfo.setAddress("address of the patient");
// New Style, key/value primitive pairs (very not object oriented)
Pair<String,String> religionInfo = new Pair<String,String>("religion","myReligionName");
Pair<String,String> addressInfo = new Pair<String,String>("address","address of the patient");
Затем они добавляют их либо Patient
или Pair
в список.
Почему кто-то делает это, это хороший вопрос. Большинство людей стараются стать более объектно ориентированными, поскольку упрощают кодирование. Возможно, поскольку в Clss только одна переменная, они поняли, почему бы не полностью удалить класс?
К вашему оригинальному вопросу между парой и HashMap. Пара - это просто ключ/ценность. HashMap - это коллекция, обычно используемая для хранения многих пар ключ/значение. Здесь они используют список, где они должны, вероятно, использовать HashMap.
Почему? Наверное, потому, что хранить все о пациенте в одном объекте - это не очень хорошая идея, для безопасности и в противном случае. Таким образом, вы можете абстрагироваться от доступа к информации о пациентах. – arynaq
Я полагаю, вы не знаете о структуре данных хеш-таблицы, правильно? – acdcjunior