Проблема
Я хочу знать, возможно ли это, если бы я мог создать State machine
, который будет содержать все методы, а значения MethodById
будут указаны вмашина.
PS это мой первый вопрос здесь.Если я делаю это неправильно, извините, но именно поэтому.
Описание (TL; DR)
Я пытаюсь сопоставить данные оТорговые представители.Каждый представитель имеет территорий , указанных почтовыми индексами .
В одном наборе данных есть представители, их территории и их компания.Другой набор данных имеет свои имена, номер телефона и адрес электронной почты.
Я создал класс Sales-rep, который берет из первого набора данных и должен быть обновлен вторым набором данных.Мне также нужно, чтобы торговые представители были помещены в справочную таблицу (для этого я использовал hashmap ) <key: zip code, value: Sales-rep object>
.
То, что я хочу, это для каждого торгового представителявозражать против наличия ID
, стандартного для всех моих наборов данных.Я не могу использовать данные, которые мне предоставляют, потому что они поступают из разных источников и невозможно стандартизировать любое поле данных.
Имена, например, перечислены так много разных способов, что было бы невозможно согласовать их и использовать это как ID
.
Если я смогу получить ID
, как это (что-то вроде SSN, но менее чувствительное) тогда я хочу попробовать, о чем мой вопрос.
Я хочу перебрать все элементы в моем <key: zip code, value: Sales-rep object>
hashmap , мы назовем его RepsByZipCode
.Когда я перебираю каждый Salesrep объект , я хочу получить ID
, который я могу использовать в другой хэш-карте под названием MethodById
<key: ID, value: a method run on the Object with this ID>
.
Я хочу, чтобы он запускал другой метод для каждого ключа на объекте с соответствующим ключом (AKA ID).Задача состоит в том, чтобы запустить разные методы для каждого отдельного объекта в линейное время, чтобы к концу цикла for для каждого объекта в RepsByZipCode
был запущен какой-либо метод, который может обновлять информацию (таким образом завершая перекрестные ссылки),
Это также делает код очень расширяемым, потому что я могу изменить метод для каждого ключа, если я хочу обновить вещи по-разному.Пример:
//SalesRep Object Constructor:
SalesRep(String name, String email, ..., String Id)
Map<String zipcode, Salesrep rep> RepsByZipCode = new HashMap<>{}
//code fills in the above with the first dataset
Map<String ID, ??? method> MethodById = new HashMap<>{}
//code fills in the above with the second dataset
for(String ZipKey:RepsByZipCode){
Salesrep Rep = RepsByZipCode.get(ZipKey);
Rep.getId = ID;
MethodById.get(ID);
//each time this runs, one entry in RepsByZipCode is updated with one
//method from MethodById.
//after this for loop, all of RepsByZipCode has been updated in linear time