機械翻訳について

リストの使用

リストはオブジェクトの順序付けられたコレクションです。 Groovyの四角カッコ表記と、次のような各リスト要素を区切るカンマを使用して、オブジェクトのリストを作成できます:

// Define a list of numbers
def list = [101, 334, 1208, 20]

もちろん、リストにも文字列を使用できます:

// Define a list of strings
def names = ['Steve','Paul','Jane','Josie']

必要に応じて、リストには、文字列と数値の混在など、異種のオブジェクト・タイプのセットを含め、任意のタイプのオブジェクトを含めることができます。

リスト内の特定の要素を参照するには、次のような整数引数の大カッコを使用します。

// Store the third name in the list in a variable
def thirdName = names[2] // zero based index!

リストはゼロ・ベースであるため、list [0]はリストの最初の要素で、list [5]は6つの要素です。 もちろん、次のように変数をオペランドの値として渡すこともできます:

for (j in 2..3) {
  def curName = names[j]
  // do something with curName value here
}

特定のリスト・アイテムの値を更新するには、添字と代入演算子の組合せを使用できます:

names[2] = 'John'

リストの最後にエントリを追加するには、add()メソッドを使用します:

names.add('Ringo')

リストには重複を含めることができるため、次のようなコードを記述すると、文字列Ringoがリストに2回追加されます:

// This will add 'Ringo' twice to the list!
names.add('Ringo')
names.add('Ringo')

リストにエントリがすでに存在するかどうかをテストするには、contains()関数を使用します。 この方法で、重複が目的に適していない場合、同じ品目を2回追加しないようにできます:

// The exclamation point is the "not" operator, so this
// first checks if the 'names' list does NOT contain 'Ringo' before
// adding it to the list
if (!names.contains('Ringo')) {
  names.add('Ringo')
}

リストからエントリを削除するには、remove()メソッドを使用します。

names.remove('Ringo')

これにより、リスト内で最初に出現したアイテムのみが削除され、目的のアイテムが見つかった場合にtrueを示すブール結果が返されます。 したがって、リストで重複が許可されており、それらをすべて削除する必要がある場合は、falseを返すまでremove()をコールするループを記述する必要があります。

次のようにfor...inループを使用して、リスト内のエントリを反復できます:

// Process each name in the list, returning
// false if any restricted name is encountered
for (name in names) {
  // call an object function for each name processed
  if (isNameRestricted(name)) {
    return false
  }
}
return true

角括弧表記を使用して、空のリストを定義できます。次のようには何も入力しません:

def foundElements = [] // empty list!