Массивы сортировки Java SOAPUI XML или что-то еще

Я создаю тесты в SoapUI. У меня очень большой отклик (>3500 пошлин). Для этого ответа мне нужно создать запрос и выполнить этот запрос. В настоящее время код (Java) работает, но я хотел бы оптимизировать код.

Для каждой обязанности я создаю запрос на получение дополнительных данных о сотрудниках и выполняю его с помощью цикла for next. Ниже приведен пример большого XML-ответа, который я получаю.

<DUTIES>
    <DUTY>
        <EMPNO>1</EMPNO>
        <LOCATION>AMS</BASE_STATION>
        <ACTUALTIME>2019-02-20T06:00:00</ACTUALTIME>        
        <POSITIONING_CODE>1</POSITIONING_CODE>
    </DUTY>
    <DUTY>
        <EMPNO>2</EMPNO>
        <LOCATION>RTM</BASE_STATION>
        <ACTUALTIME>2019-02-20T06:00:00</ACTUALTIME>        
        <POSITIONING_CODE/>
    </DUTY>
    <DUTY>
        <EMPNO>1</EMPNO>
        <LOCATION>AMS</BASE_STATION>
        <ACTUALTIME>2019-02-21T06:00:00</ACTUALTIME>        
        <POSITIONING_CODE>1</POSITIONING_CODE>
    </DUTY>
</DUTIES>

Как видно из примера, один и тот же сотрудник несколько раз появляется в ответе, поэтому в настоящее время я несколько раз вызываю запрос для одного и того же сотрудника. Я хотел бы оптимизировать это.

В SoapUI я могу использовать оператор:

String[] emps = resp.getNodeValues("/Duties/Duty/string(EMPNO)");
String[] locs = resp.getNodeValues("/Duties/Duty/string(LOCATION)");
String[] tims = resp.getNodeValues("/Duties/Duty/string(ACTUALTIME)");

Затем я хотел бы отсортировать массивы по emps и создать запрос только для получения дополнительных данных о сотруднике при изменении сотрудника. Это сделает код намного быстрее.

Теперь мои вопросы: Как лучше всего это сделать? Работать с многомерными массивами и сортировать их? Или есть лучший способ сделать это?

Заранее спасибо,

Сказал

Слишком широко - «Тогда я бы хотел отсортировать массивы по emps ...» - так иди и сделай это - в чем вопрос? Когда у вас возникают проблемы с кодом, stackoverflow.com может помочь... или вы ожидаете получить решение вместо того, чтобы работать над ним самостоятельно?

Vadim 22.02.2019 16:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
24
1

Ответы 1

Я бы создал экземпляр java.util.HashMap<String,String> или java.util.HashMap<Long,String> в зависимости от того, какой тип данных возвращается, когда вы извлекаете empno.

Просто вслепую сделайте map.put(empno,null) для каждого элемента обязанности, и впоследствии у вас будет каждый сотрудник в хэш-карте только один раз, так как каждое дополнительное добавление одного и того же ключа перезапишет существующий.

После этого просто

for (String key : map.keySet()) {
  // do your stuff
}

Как я вижу, вам действительно не нужно ничего сортировать, чтобы добраться туда.

Другие вопросы по теме