874
голосов
18ответов
113515 просмотров

Является ли библиотека коллекций Scala 2.8 случаем «самой длинной предсмертной записки в истории»?

Я только начал изучать Повторная реализация библиотеки коллекций Scala , которая выйдет в скором выпуске 2.8 . Те, кто знаком с библиотекой из 2.7, заметят, что библиотека с точки зрения использования мало изменилась. Например ... > List("Paris", "London").map(_.length) res0: List[Int] L...

73
голосов
1ответов
19296 просмотров

Руководство по созданию коллекций в Scala 2.8

Следуя моему запыхавшемуся замешательству , какие полезные ресурсы объясняют, как новыйБыла структурирована библиотека коллекций Scala 2.8 .Мне интересно найти информацию о том, как сочетаются следующие элементы: Сами классы / признаки коллекции (например, List, Iterable) Почему сущест...

225
голосов
4ответов
34733 просмотров

Scala 2.8 перерыв

В Scala 2.8 есть объект в scala.collection.package.scala: def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) = new CanBuildFrom[From, T, To] { def apply(from: From) = b.apply() ; def apply() = b.apply() } Мне сказали, что это приводит к: > import sca...

4
голосов
4ответов
617 просмотров

Is there a built-in more elegant way of filtering-and-mapping a collection by element type?

If I want to narrow, say, an Iterable[A] for all elements of a particular type (e.g. String) I can do: as filter { _.isInstanceOf[String] } However, it's obviously desirable to use this as an Iterable[String] which can be done via a map: as filter { _.isInstanceOf[String] } map { _.asInstance...

3
голосов
3ответов
708 просмотров

Scala immutable SortedSet are not "stable" on deletion

I've to deal with an immutable object in scala 2.7.5, and one of its member is an immutable Sortedset. I've no problem with addition, to synthetise, it gives: class MyClass[A](s:SortedSet[A]) { ... def + (elem:A):MyClass[A] { new MyClass(s + elem) } } And it works, since + operator ...

35
голосов
8ответов
28971 просмотров

Scala: how to merge a collection of Maps

I have a List of Map[String, Double], and I'd like to merge their contents into a single Map[String, Double]. How should I do this in an idiomatic way? I imagine that I should be able to do this with a fold. Something like: val newMap = Map[String, Double]() /: listOfMaps { (accumulator, m) =...

11
голосов
3ответов
11468 просмотров

How to use Java Collections.shuffle() on a Scala array?

I have an array that I want to permutate randomly. In Java, there is a method Collections.shuffle() that can shuffle the elements of a List randomly. It can be used on an array too: String[] array = new String[]{"a", "b", "c"}; // Shuffle the array; works because the list returned by Arrays.asL...

2
голосов
2ответов
563 просмотров

Using JDOQL results in Scala

I'm trying to use a JDO with Google App Engine and Scala. The api for the execute returns Object (but it's really a java collection) and I want to get it into a scala list to iterate over it. My code looks like this so far: val pm = PMF.factory.getPersistenceManager val query = "select from Us...

8
голосов
2ответов
1899 просмотров

Scala best way of turning a Collection into a Map-by-key? (2nd variant)

(This is a variant to this Q&A) Say I have this: List( "foo", "bar", "spam" ) I want to create a Map for which the key is the length of the String and the value is a Collection of all the Strings that have that length. In other words, given the about List, we'd get: Map( 3 -> List(foo...

4
голосов
2ответов
3310 просмотров

Создайте java.util.List из java.util.Set в Scala

Я хотел бы создать список Java на основе другой коллекции Java, например. Устанавливается в Scala. Почему это невозможно? Я получаю сообщение об ошибке: scala.this.Int. val in: java.util.Set[String] = new java.util.HashSet() val out : java.util.List[String] = new java.util.ArrayList(in) ...

58
голосов
5ответов
20955 просмотров

scala Iterable # map против Iterable # flatMap

В чем разница между функциями map и flatMap в Iterable?

14
голосов
4ответов
13797 просмотров

Как преобразовать из java.util.Map в карту Scala

API Java возвращает java.util.Map<java.lang.String,java.lang.Boolean> ;. Я хотел бы поместить это в Map[String,Boolean] Представьте, что у нас есть: var scalaMap : Map[String,Boolean] = Map.empty val javaMap = new JavaClass().map() // Returns java.util.Map<java.lang.String,java....

12
голосов
3ответов
9725 просмотров

Значения агрегированного списка в Scala

Начиная со списка объектов, содержащего два номинальных параметра и валюту, как я могу агрегировать общее условное значение для каждой валюты? Дано: case class Trade(name: String, amount: Int, currency: String) val trades = List( Trade("T150310", 10000000, "GBP"), Trade("T150311", 100...

1
голосов
3ответов
3621 просмотров

scala collection.Map не может быть добавлен в

Почему я не могу добавить к scala.collection.Map? Кажется, что этот trait бесполезен без этой функции. Не могли ли они переопределить метод ++ в Iterable и уменьшить возвращаемый тип до Map? P.S. Я не имею в виду, что он должен быть изменяемым , просто он должен иметь возможность возвраща...

10
голосов
2ответов
11610 просмотров

Карта Scala: загадочный синтаксический сахар?

Я только что узнал этот синтаксис для scala Map (используется здесь в изменяемой форме) val m = scala.collection.mutable.Map[String, Int]() m("Hello") = 5 println(m) //PRINTS Map(Hello -> 5) Теперь я не уверен, является ли это синтаксическим сахаром , встроенным в язык, или здесь пр...

1
голосов
1ответов
368 просмотров

Дизайн Scala API; сервис, который возвращает Set <i>, где I - некоторый интерфейс (абстрактный / черта)</i>

Я задал немало вопросов о типах коллекций Scala и о том, как их на самом деле можно использовать. Подумайте, как я мог бы написать некоторый сервисный API / реализацию на Java: public interface JavaProductAPI { public Set&lt;IProduct&gt; getProducts(String isin); } А теперь импл: ...

5
голосов
2ответов
1833 просмотров

Scala мне нужно преобразовать в Seq при создании коллекции из итерируемого объекта?

Возможно, я лаяю не на то дерево (опять же), но если для свойства обычно используется тип scala.collection.immutable.Set[A], то как бы вы создали одно из этих деревьев с scala.Iterable[A]? Например: class ScalaClass { private var s: scala.collection.immutable.Set[String] def init(): ...

94
голосов
3ответов
7669 просмотров

Почему неизменяемый набор Scala не ковариантен по своему типу?

ИЗМЕНИТЬ : этот вопрос был переписан на основе исходного ответа Класс scala.collection.immutable.Set не является ковариантным по своему параметру типа. Почему это? import scala.collection.immutable._ def foo(s: Set[CharSequence]): Unit = { println(s) } def bar(): Unit = { val s: ...

31
голосов
4ответов
9475 просмотров

Стандартная практика Scala collection

Исходя из опыта работы с Java, я привык к обычной практике работы с коллекциями: очевидно, будут исключения, но обычно код будет выглядеть так: public class MyClass { private Set&lt;String&gt; mySet; public void init() { Set&lt;String&gt; s = new LinkedHashSet&lt;String&gt;(); s....

87
голосов
10ответов
76391 просмотров

Преобразование коллекции Java в коллекцию Scala

Связанный с вопросом о переполнении стека Scala-эквивалент нового HashSet (Collection) , как мне преобразовать коллекция Java (скажем, java.util.List) в коллекцию Scala List? На самом деле я пытаюсь преобразовать вызов Java API в Spring SimpleJdbcTemplate, который возвращает java.util.Li...

165
голосов
13ответов
143945 просмотров

Scala - лучший способ превратить коллекцию в карту по ключу?

Если у меня есть коллекция c типа T и свойство p на T (например, типа P), как лучше всего использовать map-by-extract-key ? val c: Collection[T] val m: Map[P, T] Один из способов - следующий: m = new HashMap[P, T] c foreach { t =&gt; m add (t.getP, t) } Но теперь мне нужна измен...

10
голосов
2ответов
10974 просмотров

Scala-эквивалент нового HashSet (Collection)

Что такое конструктор Scala (для создания неизменяемого HashSet), эквивалентный Java new HashSet&lt;T&gt;(c) где c имеет тип Collection&lt;? extends T&gt;? Все, что я могу найти в Object HashSet, - это apply.

12
голосов
4ответов
2085 просмотров

scala превращает итератор [Option [T]] в итератор [T]

У меня есть Iterator[Option[T]], и я хочу получить Iterator[T] для тех Option, где T isDefined. Должен быть способ лучше, чем этот: it filter { _ isDefined} map { _ get } Я бы подумал, что это возможно в одной конструкции ... Есть идеи?

28
голосов
1ответов
7062 просмотров

Идиоматическая карта Scala Upsert

Я работаю с картой в Scala и делаю обычную процедуру «если с ключом не связано никакого значения, создайте его, поместите на карту и верните»: def alphaMemory(key : AlphaMemoryKey) = { var am = map.getOrElse(key, null) if(am == null) { am = new AlphaMemory(key) map.put...