Как отфильтровать данные объекта?

У меня есть список пользователей типа:

java.util.List[User] 

Пользователь имеет тип:

case class User(id: String, type : BigInt) 

Я хочу отфильтровать в список строк, где каждая строка является идентификатором пользователя: java.util.List[String]

Я мог бы просто перебрать каждое значение в списке и просто выбрать идентификатор и заполнить новый список.

Могу ли я использовать функциональность фильтра Scala для достижения этой цели?

1 ответ

Решение

Вам придется конвертировать в коллекцию Scala, а затем обратно в коллекцию Java:

import collection.JavaConverters._

val l: java.util.List[User] = ...
val l2 = l.asScala.map(_.id).asJava
// l2: java.util.List[java.lang.String] = ...

Кроме того, вы можете написать свои собственные сборщики и CanBuildFrom последствия для коллекций Java, но это, безусловно, будет больше работы.

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