問題タブ [listbuffer]
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 - 空の ListBuffer を作成する最も効率的な方法は何ですか?
空の ListBuffer を作成する最も効率的な方法は何ですか?
val l1 = new mutable.ListBuffer[String]
val l2 = mutable.ListBuffer[String] ()
val l3 = mutable.ListBuffer.empty[String]
違いにメリット・デメリットはありますか?
scala - scala条件を満たすListBufferのすべての要素を(インプレースで)削除します
ListBufferがあります。特定の条件を満たすすべての要素を削除したい。
それを繰り返して、各要素を削除することができます。しかし、Scalaは、繰り返し処理しているリストを変更することについて何と言っていますか?それは機能しますか、それとも間違った要素を削除しますか/すべての要素を返しませんか?(REPLを使って簡単に試してみると、そうです、混乱するでしょう)
findを繰り返し呼び出してから、見つかった要素を削除して、それ以上見つからなくなるようにすることもできますが、それは非効率に聞こえます。
.filterは、要素のない新しいListBufferを返しますが、その場で実行したいと思います。
これ
有望に見えますが、ここでの使い方がよくわかりません
これはどのようにすればよいですか?
scala - を使用したStream/lazyval実装がListBuffer1よりも高速である理由
以下のStreamとlazyvalを使用して、lazysieveアルゴリズムの次の実装をコーディングしました。
および(可変)ListBufferを使用した次の実装:
primes()。takeWhile(_ <1000000).sizeを実行したとき、最初の実装は2番目の実装より3倍高速です。これの説明は何ですか?
2番目のバージョンを編集しました。sieve(3、ListBuffer())ではなくsieve(3、ListBuffer(3))である必要があります。
scala - Scala:異なるキーに対して異なるデータ型を持つHashMapが可能ですか?
私は Scala を使ったプログラミングがまったく初めてで、次の問題があります。
多くのデータ型 (Int、String など) を含むことができる HashMap が必要です。C++ では、BOOST の MultiMap を使用します。Scala には MultiMap トレイトが用意されていると聞いたことがあります。基本的に私がしたいことは次のとおりです。
ListBuffer の要素の具体的なデータ型は、実行時に決定されます。この実装をコンソールでテストすると、次のように動作します。
したがって、基本的には機能します。私の最初の質問は、ListBuffer を間接レイヤーとして使用せずに、Scala で同じ動作を実装する可能性があるかどうかです。
たとえば、次の内容のマップを取得します: Map((String, 1),(String, "String value"), ...)
上記の ListBuffer-Implementation を使用しようとすると、次の型の不一致エラーが発生します。
私は基本的に次のことをしようとしています:
イテレータを使用して、マップのキーを反復処理します。
setValue は Int を返し、ListBuffers の最後の要素を処理する必要があるメソッドです。
上記のタイプの不一致を修正する方法を知っている人はいますか?
ご協力いただきありがとうございます!
よろしく
scala - 「toSet」メソッドが ListBuffer の要素の順序を混同するのはなぜですか?
scala で、メソッドがコレクション ( )toSet()
内の要素の順序を混同するのはなぜですか?ListBuffer
各要素の一意性を確保し、元の順序を維持するには、どのコレクションを使用できますか?
scala - Scala で ListBuffer にオブジェクトを追加する際の問題
オブジェクトを scala.collection.mutable.ListBuffer に追加する際に問題があります。私はそれぞれの API に精通しており、通常は += または ++= メソッドを使用してオブジェクトまたはオブジェクトのシーケンスを追加することを知っています。
ネットワークをサポートするカード ゲームを実装していますが、選択したカードを List of hand cardsに追加するという単純な問題があります。次のコードでは、ハンド カードのリスト (ListBuffer) への参照を取得し、ListBuffer のサイズを出力し、選択したカードをそれに追加して、サイズを再度出力します。
結果として、handCards のサイズは、選択したカードのサイズだけ大きくなります。しかし、出力は(フォーマットされています):
したがって、要素は追加されていません。
ClientCard は常に「実際のカード」の代表であり、カードを引くために必要な情報のみで構成されます。
ClientCard は Card クラスで作成されます。
そして、ListBuffer が作成される ClientPlayer (「実際のプレーヤー」の代表) があります。
ここで何がうまくいかないのか誰か知っていますか?または、より一般的に言えば、ListBuffer へのオブジェクトの追加が成功しないのはどのような状況ですか?
編集:私が言及するのを忘れていたものと、この奇妙な動作の原因と思われるものがあります. handCards ListBuffer の作成後、ネットワーク経由で送信されるため、再度シリアライズおよびデシリアライズされます。
Rex Kerr のコメントの後、私は ClientPlayer のディープ コピー メソッドを作成しようとし、それを受け取った直後に各 ClientPlayer をコピーしました。これで問題は解決しました。誰かがこの動作について説明していますか?
list - List を ListBuffer に変換するには?
おそらくtoBufferまたはメソッドを介して、これを効率的に行う方法はありますか? 私の本当の問題は、次のように、パーサーからリストを作成していることです。
しかし、それを構築した後、代わりにバッファにしたい-パーサーから直接バッファを構築する方法がわかりません。
scala - Scala:同じクラスのオブジェクトの型が異なる?
scala でクラスを定義した後、作成したオブジェクトの型が異なるようです。オブジェクトの ListBuffer を作成しようとしています。scala コマンドラインで試してみます。誰かがこれを説明できますか?
以下の例では、class z
. オブジェクト p と q は、それらを a に追加しようとすると競合するようですListBuffer
list - リストの値を絶対値で更新する
スカラ初心者。
このコードを数時間動作させようとしています。List[Int](整数のリスト) を整数の絶対値で更新することを目的としています。List が不変であることを理解するのに長い時間がかかったので、ListBuffer が救世主になり得ることがわかりましたが、最終的にそれを List フォームに戻す際に、私が推測するいくつかの問題が発生しています。
このエラーが発生しています:
ここで何が悪いのかわかりません。