文書   >   Swift   >   Array   >   partition(by:)
インスタンスメソッド
partition(by:)
与えられた述語に一致するすべての要素が、一致しないすべての要素の後になるように、コレクションの要素を並べ替えます。
宣言
パラメータ
belongsInSecondPartition | コレクションを分割するために使用される述語 (predicate)。この述語を満たすすべての要素は、それを満たさないすべての要素の後に並べられます。 |
戻り値
belongsInSecondPartition に一致する、並べ替えられたコレクション内の最初の要素のインデックス。コレクション内の要素が belongsInSecondPartition と一致しない場合、返されるインデックスはコレクションの endIndex と同じです。
議論
コレクションを分割した後、p の前に belongsInSecondPartition 述語を満たす要素がなく、p の要素あるいは以降のすべての要素が belongsInSecondPartition を満たす中心のインデックスpがあります。
以下の例では、数値の配列が、30 より大きい要素に一致する述語によって分割されています。
var numbers = [30, 40, 20, 30, 30, 60, 10]
let p = numbers.partition(by: { $0 > 30 })
// p == 5
// numbers == [30, 10, 20, 30, 30, 60, 40]
numbers 配列が 2 つの部分に配置されました。最初の部分、numbers[.. <p] は、30 より大きくない要素で構成されています。2 番目の部分、numbers[p ...] は、30 より大きい要素で構成されています。
let first = numbers[..<p] // first == [30, 10, 20, 30, 30] let second = numbers[p...] // second == [60, 40]
複雑さ:O(n)、ここで n はコレクションの長さです。
以下も見よ
配列の要素を並べ替え
コレクションをその場で並べ替えます。
Element が Comparable に準拠している場合に利用できます。
func sort(by: (Element, Element) -> Bool)
与えられた述語を要素間の比較として使用して、コレクションをその場で並べ替えます。
並べ替えられたシーケンスの要素を返します。
Element が Comparable に準拠している場合に利用できます。
func sorted(by: (Element, Element) -> Bool) -> [Element]
与えられた述語を要素間の比較として使用して並べ替えられた、シーケンスの要素を返します。
コレクションの要素をその場で逆の順にします。
func reversed() -> ReversedCollection<Array<Element>>
コレクションの要素を逆の順序で表示するビューを返します。
コレクションをその場でシャッフルします。
func shuffle<T>(using: inout T)
乱数の発生源として与えられた発生器を使用して、コレクションをその場でシャッフルします。
func shuffled() -> [Element]
シーケンスの要素をシャッフルして返します。
func shuffled<T>(using: inout T) -> [Element]
乱数の発生源として与えられた発生器を使用して、シャッフルされたシーケンスの要素を返します。
コレクションの指定されたインデックスの値を交換します。
トップへ
トップへ
トップへ
トップへ
トップへ