Swiftで配列の並び順を比較する方法について記載します。
並び順を比較する方法
並び順を比較するには、lexicographicallyPrecedes メソッドを使用します。
使い方は、次のようになります。
変数A.lexicographicallyPrecedes( 変数B )
変数Aの配列要素が、変数Bより前の場合は true を返します。
また、変数A と 変数B の 配列が同じ順序の場合は、false を返します。
比較演算子で表すと 変数A < 変数B の場合に、true を返すイメージです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
let nums1 = [1,2,3] let nums2 = [1,3,2] let nums3 = [1,2,3] // nums1 の方が nums2 より並び順が先なので、true となります。 let result1 = nums1.lexicographicallyPrecedes( nums2 ) print( result1 ) // true // nums2 の方が nums1 より並び順が後なので、false となります。 let result2 = nums2.lexicographicallyPrecedes( nums1 ) print( result2 ) // false // 同じ並び順の場合は、false となります。 let result3 = nums1.lexicographicallyPrecedes( nums3 ) print( result3 ) // false |
比較する変数の片方が 空の配列 の場合、空の配列 の方が 順序が先 と判定されます。
1 2 3 4 5 6 7 8 9 10 |
let nums1 = [1,2,3] let nums2:[Int] = [] // nums1 を nums2(空の配列)と比較 let result1 = nums1.lexicographicallyPrecedes( nums2 ) print( result1 ) // false // nums2(空の配列) を nums1 と比較 let result2 = nums2.lexicographicallyPrecedes( nums1 ) print( result2 ) // true |
比較する2つの変数が 空の配列 の場合は、false が返されます。
1 2 3 4 5 6 7 8 |
let nums1:[Int] = [] let nums2:[Int] = [] let result1 = nums1.lexicographicallyPrecedes( nums2 ) print( result1 ) // false let result2 = nums2.lexicographicallyPrecedes( nums1 ) print( result2 ) // false |