問題タブ [scala-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - scala collection.Map は追加できません
に追加できないのはなぜscala.collection.Map
ですか? この機能がなければ、これtrait
はかなり役に立たないようです。
++
メソッドをオーバーライドしてIterable
、戻り値の型を に減らしたのではMap
ないでしょうか?
PS私はそれがmutableであるべきだという意味ではなくMap
、immutable.Map
.
scala - Scala でリスト値を集計する
想定元本と通貨の 2 つのパラメーターを含むオブジェクトのリストから始めて、通貨ごとの想定元本の合計を集計するにはどうすればよいでしょうか?
与えられた:
どうすれば入手することができますか:
scala - java.util.Map から Scala Map に変換する方法
Java API は ; を返しjava.util.Map<java.lang.String,java.lang.Boolean>
ます。私はそれを入れたいと思いますMap[String,Boolean]
想像してみてください:
Map.empty ++ javaMap
++ メソッドは Java マップを認識しないため、実行できません。私は試した:
と:
ジェネリックのため、これらは両方ともコンパイルに失敗します -java.lang.String
スカラ文字列と同じではありません。
マップを手動でコピーする以外に、これを行う良い方法はありますか?
編集:ありがとう、すべての良い答え、私はそれらすべてから多くを学びました. しかし、私が実際に抱えている問題よりも簡単な問題をここに投稿して、間違いを犯しました。許可があれば、質問を一般化します - API が実際に返すのは
そして、これを Map[String, Map[SomeJavaEnum,String]] に移動する必要があります
それほど複雑ではないように思えるかもしれませんが、型消去のレベルが追加されます。これを Scala マップに移動するために私が見つけた唯一の方法は、それをディープ コピーすることでした (以下で提案した手法のいくつかを使用)。 . 誰でもヒントはありますか?正確な型の暗黙的な変換を定義することで問題を解決したので、少なくとも醜さはそれ自体の特性に隠されていますが、それでも多くを深くコピーするのは少し不器用です。
scala - scala Iterable#mapとIterable#flatMap
map
とのflatMap
機能の違いは何Iterable
ですか?
list - コレクションをキーごとのマップに変換するScalaの最良の方法は? (2 番目のバリアント)
(これは、この Q&Aの変形です)
私がこれを持っているとしましょう:
キーが文字列の長さであり、値がその長さを持つすべての文字列のコレクションであるマップを作成したいと考えています。言い換えれば、 about List が与えられると、次のようになります。
これを行うために私が書いたコードは次のとおりです。
これは機能しますが、元の質問 (上記参照) に対して Daniel Spiewak が提供したエレガントな回答に多くの醜さを追加します。
私のバリアントのソリューションを改善する方法はありますか?
ありがとう!ショーン
scala - JDOQLを使用するとScalaが生成されます
GoogleAppEngineとScalaでJDOを使用しようとしています。実行用のAPIが返されObject
(ただし、実際にはJavaコレクションです)、それをscalaリストに入れて反復処理したいと思います。
これまでのところ、私のコードは次のようになっています。
この時点でのコンパイルエラーは、toArrayがObjectのメンバーではないことです。上記を行うための最良の方法は何ですか?使ってみまし.asInstanceOf[java.util.Collection[User]]
たが失敗しました。
arrays - Scala配列でJava Collections.shuffle()を使用するには?
ランダムに並べ替えたい配列があります。Java には、List の要素をランダムにシャッフルできる Collections.shuffle() メソッドがあります。配列でも使用できます。
これを Scala 配列で使用しようとしましたが、Scala インタープリターは長い回答で応答します。
ここで正確に何が起こっているのですか?このため、特別なフラグ (-Xno-varargs-conversion) を使用してコードをコンパイルしたくありません。
では、Scala 配列で Java の Collections.shuffle() を使用するにはどうすればよいでしょうか?
その間、Scala で独自のシャッフル メソッドを作成しました。
配列をその場でシャッフルし、利便性のために配列自体を返します。
scala - Scala: マップのコレクションをマージする方法
Map[String, Double] のリストがあり、それらの内容を単一の Map[String, Double] にマージしたいと考えています。これを慣用的な方法で行うにはどうすればよいですか?折り目でこれができるはずだと思います。何かのようなもの:
さらに、キーの衝突を一般的な方法で処理したいと考えています。つまり、既に存在するマップにキーを追加すると、Double (この場合) を返し、そのキーの既存の値と、追加しようとしている値を取る関数を指定できるはずです。 . キーがマップにまだ存在しない場合は、それを追加し、その値を変更しません。
私の特定のケースでは、マップに既にキーが含まれている場合、Double が既存のマップ値に追加されるように、単一の Map[String, Double] を作成したいと考えています。
特定のコードで変更可能なマップを使用していますが、可能であれば、より一般的なソリューションに興味があります。
scala - Scala不変のSortedSetは削除時に「安定」していません
scala 2.7.5 で不変オブジェクトを処理する必要があり、そのメンバーの 1 つは不変の Sortedsetです。私は加算に問題はありません。合成するために、次のようになります。
+ 演算子は、SortedSet を返す特性 sortedSet でオーバーロードされているため、機能します。
残念ながら、メソッドがオーバーロードされていないため、要素の削除は失敗します。
次のことを知っている要素を抑制するときに、ソートされたセットを取得する方法を知っている人はいますか? - TreeSet のようなより具体的な種類のセットを使用したくありません。- SortedSet の代わりに Set[A] として特定性の低い特性を使用することはできません。