Как отфильтровать данные объекта?
У меня есть список пользователей типа:
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, но это, безусловно, будет больше работы.