配列(リスト)に特定の値が含まれているかどうかを判定するには (contains)

関連

Java

java.util.List

Signature:

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        ArrayList<Integer> lst = new ArrayList<>();
        lst.add(3);
        lst.add(5);
        lst.add(7);
        lst.add(9);
        System.out.println(lst.contains(5));   // => true
        System.out.println(lst.contains(8));   // => false
        System.out.println(lst.contains("5")); // => false
    }

}

要素が一致しているかどうかは null を除いて equals メソッドが使われる。

containsメソッドの引数の型は Object だが、型が一致せずに equalsfalse を返すような値を与えてしまうと、必ず false になってしまう。

java.util.List#contains | Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/List.html#contains-java.lang.Object-

Scala

Signature:

PHP

in_array を使うと、TRUEFALSEを返す。第1引数が探したい値で、第2引数が配列である。

$arr = array(3, 5, 7, 9);
var_export(in_array(5, $arr));   # => true
var_export(in_array(8, $arr));   # => false
var_export(in_array("5", $arr)); # => true

in_array 関数 | PHP Manual
http://php.net/manual/ja/function.in-array.php

Ruby / JRuby

Array#include? メソッドは引数に値を渡すと、== で比較して一致する要素が存在する場合に true を返す。

また、Array#indexArray#find_index は、引数に値を渡すと == で要素と比較して最初に見つかったインデックスを返し、ブロックを渡すと要素を引数として要素ごとにブロックが評価されて、 trueを返した最初のインデックスを返し、いずれの場合も見つからないと nil を返す。

arr = [3, 5, 7, 9]

p arr.include?(5)
# => true

p arr.index(7)
# => 2
p arr.index(8)
# => nil

p arr.index {|v| v % 7 == 0}
# => 2
p arr.index {|v| v % 8 == 0}
# => nil

Array#include? | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/include=3f.html

Array#index, Array#find_index | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/find_index.html

Python

in という演算子が使える。

if elem in arr:
    ...

in 演算子はセットに対しても使える

in 演算子 | Python 2.7 documentation
http://docs.python.jp/2/reference/expressions.html#not-in

in 演算子 | Python 3 documentation
http://docs.python.jp/3/reference/expressions.html#membership-test-operations

Perl

if (grep {$_ eq $elem} @arr) {
  ...;
}

grep関数は配列から条件をみたすものだけを抽出して新しい配列を作る関数。->grep

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク