2015-08-29 5 views
1

Скажем, например, у меня есть:Сортировка ArrayList, базирующийся на ArrayList B

ArrayList A; со значениями: «a», «b», «c», «d», «e»

ArrayList B; со значениями: "3", "1", "5", "2", "4"

Затем я выполнил

Collections.sort (B);

так, то ArrayList B становится:

"1", "2", "3", "4", "5"

Теперь я хочу, чтобы отсортировать ArrayList на основе сорта в ArrayList B, я должен получить ArrayListA:

"б", "д", "а", "е", "с"

Как я могу добиться этого? Извините, я все еще новичок в Android. Любая помощь будет оценена по достоинству.

+1

Андроид API не предоставляет никаких возможностей для достижения этой цели. Вам нужно будет написать код для обработки необходимой логики. – wdosanjos

+1

Я не понимаю ваш пример. Как сортировать A с помощью B? Кроме того, это не связано с Android. – Zarwan

+0

Взгляните на [этот ответ] (http://stackoverflow.com/a/4839994/3558960). А также [это] (http://stackoverflow.com/a/4841110/3558960). –

ответ

2

Просто поместите данные в TreeMap (это карта, упорядоченная по естественному заказу его ключей), и все готово.

Ручной подход (если вы хотите, чтобы некоторые программирования практики) будет:

  • поместить оба списка в одной карте, где ключи приходят из списка B и значений из списка А
  • получить ключи от карты и сортировать их
  • перебирать отсортированные ключи и получать значения с карты и помещать их в новый список.

Как вы можете видеть, этот вопрос не имеет ничего общего с Android, это просто простая задача программирования.

+0

Я думаю, что «key sorted» был бы лучшим термином, чем «отсортированная по карте», но это немного ничто. +1 – jpmc26

Смежные вопросы