141

配列に要素が含まれているかどうかを確認するにはどうすればよいですか? [1, 2, 3].includes(1)と評価されるようなものがあるのではないかと思いましたtrue

4

8 に答える 8

266

いくつかのシンタックスシュガー

1 in [1,2,3]
于 2008-09-15T10:09:55.413 に答える
150

リストには .contains() が最適な方法ですが、マップには .containsKey() または .containsValue() を使用する必要があります

[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey('a')
于 2008-09-15T20:44:19.883 に答える
62

リストの場合は、次を使用しますcontains

[1,2,3].contains(1) == true
于 2008-09-09T13:58:24.870 に答える
8

ArrayList に includes メソッドが本当に必要な場合は、追加するだけです。

ArrayList.metaClass.includes = { i -> i in delegate }
于 2008-10-02T18:35:56.597 に答える
3

ドメインなどのオブジェクトのコレクションで .contains() を使用するための重要な問題。Domain 宣言に EqualsAndHashCode、またはその他の equals() 実装が含まれており、これらのオブジェクトが等しいかどうかを判断し、次のように設定した場合...

import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")

.contains(myObjectToCompareTo) は、コレクション内の各オブジェクト インスタンスのデータを使用して、myObjectToCompareTo 内のデータを評価します。そのため、equals メソッドがうまくいかない場合は、私の場合と同様に、予期しない結果が表示される可能性があります。

于 2014-12-31T18:20:33.317 に答える
2
def fruitBag = ["orange","banana","coconut"]
def fruit = fruitBag.collect{item -> item.contains('n')}

私はこのようにしたので、誰かが探している場合に機能します。

于 2016-10-08T16:41:53.670 に答える