Help us understand the problem. What is going on with this article?

Scalaでコレクションから要素を削除する方法のメモ

More than 1 year has passed since last update.

概要

AtCoderに最近取り組んでいて、一度コレクションに入れた要素を削除したい場面が出てきます。該当する要素を削除した後のコレクションを、取得する方法をメモ書きします。

例題

下記のようなコレクションがあり、ここから要素が「1」のものを削除します。

val seqSample = Seq(1, 2, 1, 3, 1, 4, 1, 5, 1, 6)

対応

1. 「1」を全て削除する

filterNotメソッドを使うのが、一番簡単かなと思います。

【サンプルコード】
seqSample.filterNot(_ == 1)
【出力結果】
List(2, 3, 4, 5, 6)

2. 「1」を指定した数だけ削除する

どのように実装すれば良いか悩んだのですが、おそらくdiffメソッドを使うのが一番分かりやすいのかなと感じました。以下は「1」を1つだけ削除する場合です。

【サンプルコード】
seqSample.diff(Seq(1))
【出力結果】
List(2, 1, 3, 1, 4, 1, 5, 1, 6)

ちなみに「1」を2つ削除する場合は以下のように書けます。

【サンプルコード】
seqSample.diff(Seq(1, 1))
【出力結果】
List(2, 3, 1, 4, 1, 5, 1, 6)
someone7140
まだまだ修行中のエンジニアです。ちゃんとサービスを作れるようになりたいです。
http://toaruit.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away