Что делает этот алгоритм сортировки Groovy?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Что делает этот алгоритм сортировки Groovy?

Сообщение Anonymous »

Я пытаюсь провести рефакторинг чужого кода Groovy, и в нем есть алгоритм Collections.sort(), который я не понимаю. Я рассмотрел Collections.sort() на Java с примерами (я знаю Java, но я связан с Groovy и могу использовать библиотеки Java).

Код: Выделить всё

List json = new ArrayList()
def map = new HashMap()

def title = "Microservice1"
def uri = "https://someUrl.com/microservice1/api-docs"
map.put("name", title)
map.put("uri", uri)
json.push(map)

title = "Microservice2"
uri = "https://someUrl.com/microservice2/api-docs"
map.put("name", title)
map.put("url", uri)
json.push(map)

def api1 = "https://someApi1.com/api-docs"
def api2 = "https://someApi2.com/api-docs"

map = new HashMap()
map.put("name", "API 1")
map.put("url", api1)
json.push(map)

map = new HashMap()
map.put("name", "API 2")
map.put("url", api2)
json.push(map)

map = new HashMap()
map.put("name", "Leads")
map.put("url", api2 + "?groups=Leads")
json.push(map)

// What exactly does this do?
Collections.sort(json,  new Comparator() {
public int compare(Map m1, Map m2) {
return m1.get("name").compareTo(m2.get("name"));
}
});
Я, по крайней мере, понимаю, что Collections.sort() может принимать 2 параметра, первый из которых — это сортируемая коллекция, которая представляет собой переменную json в в моем случае, а второй (необязательный) параметр — это алгоритм сортировки, который в данном случае является объектом Comparator, конструктором которого является функция Compare()? Однако я не понимаю, как создаются экземпляры карт m1 и m2 и, следовательно, какие значения они имеют? Может кто-нибудь объяснить? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/785 ... gorithm-do
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»