Scala - как назначить номера записей отсортированным элементам коллекции? - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел написать метод для обработки данных о продажах таким образом, чтобы продажи сортировались по дате и объединялись с номером записи и типом продажи следующим образом:

0/2018-05-02 01:55:07/Sale type A,1/2018-09-22 02:55:07/Sale type B

Но на данный момент я могу добиться только сцепления saleDate и saleType.Как можно создать номер записи для каждой записи?Под номером записи я подразумеваю порядок продаж после сортировки по дате

def concatSales(sales: Seq[Sale]): Seq[String] = {
        sales
        .sortWith(_.saleDate < _.saleDate)
        .map(sale => s"$DELIMITER${sale.saleDate}$DELIMITER${sale.saleType}")
}

1 Ответ

0 голосов
/ 18 февраля 2019

Если вы хотите назначить индекс для каждого элемента, вы можете использовать zipWithIndex:

sales
  .sortWith(_.saleDate < _.saleDate)
  .zipWithIndex
  .map {
    case (sale, idx) => s"$idx: ..."
  }

Обратите внимание, что вы можете использовать .sortBy вместо .sortWith, так как это выглядит проще:

 sales.sortBy(_.saleDate)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...