配列(リスト)に特定の値が含まれているかどうかを判定するには (contains) 2015/01/21
関連
Java
java.util.List
2015/01/09
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
だが、型が一致せずに equals
が false
を返すような値を与えてしまうと、必ず 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 2015/01/21
Signature:
PHP 2015/01/09
in_array
を使うと、TRUE
かFALSE
を返す。第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 2015/01/04
Array#include?
メソッドは引数に値を渡すと、==
で比較して一致する要素が存在する場合に
true
を返す。
また、Array#index
と Array#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 2013/10/06
in
という演算子が使える。
if elem in arr:
...
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 2015/01/22
例
if (grep {$_ eq $elem} @arr) {
...;
}
grep
関数は配列から条件をみたすものだけを抽出して新しい配列を作る関数。->grep