У меня есть еще один вопрос на карте. Это вопрос формата карты, и я не могу понять это правильно. Вот XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SearchRS>
<SearchStatus>SUCCESS</SearchStatus>
<Itinerary>
<Carrier>Joe</Carrier>
<Total>111.11</Total>
<Duration>111</Duration>
</Itinerary>
<Itinerary>
<Carrier>Bob</Carrier>
<Total>222.22</Total>
<Duration>222</Duration>
</Itinerary>
<Itinerary>
<Carrier>Joe</Carrier>
<Total>333.33</Total>
<Duration>333</Duration>
</Itinerary>
<Itinerary>
<Itinerary>
<Carrier>Bob</Carrier>
<Total>444.44</Total>
<Duration>444</Duration>
</Itinerary>
<Carrier>Joe</Carrier>
<Total>234.10</Total>
<Duration>167</Duration>
</Itinerary>
</SearchRS>
Я хочу создать простую карту, которая бы выглядела так:
[[перевозчик: Джо, стоимость: 111.11, продолжительность: 111], [перевозчик: Боб, стоимость: 222.22, продолжительность: 222], [перевозчик: Джо, стоимость: 333.33, продолжительность: 333], [перевозчик: Боб , стоимость: 444.44, продолжительность: 444], [перевозчик: Джо, стоимость: 234.10, продолжительность 167]]
То, что я вижу, это:
[[Джо: [111.11, 333.33, 234.10], Боб: [222.22, 444.44]]
Это мой код такой, какой он есть;
def carriers = [:]
for (name in doc.'**'.findAll { it.name() == 'CarrierCode' }.unique()) {
carriers[name] = doc.'**'.findAll { it.name() == 'Itinerary' && name == it.CarrierCode.text() }.collect {
Double.parseDouble(it.DisplayTotal.text()) + Double.parseDouble(it.Duration.text())
}
}
log.info("map is " + carriers)
Мне нужна помощь на этих картах, пока я не попаду в классный класс, я действительно застрял в этих вещах, и вся помощь очень ценится!