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

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

概要

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)
Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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