swift中数组使用详情

初始化一个数组

//字面量创建一个数组(可以使用数组字面量来初始化一个数组,他是一种以数组集合来写一个或者多个值的简写方式.数组字面量写作一系列的值,用逗号隔开,用方括号括起来)
let array = [1,2,3,4]
/*
1.创建空数组的时候必须携带类型信息;
2.如果内容已经提供了类型信息,比如说作为函数的实际参数或者已经分类了的变量或常量,你可以通过空数组字面量来创建一个空数组
*/
var array: [String] =[]
//初始化器==>[类型]()
 var array1=[String]()
 //初始化器==>Array<类型>()
var array2=Array<String>()
//将"Z"重复创建5次
var array3=Array(repeating: "z", count: 5)
//使用区间初始化一个数组
var aray4=[Int](0...7)

数组的遍历

/*
         forEach:
            无法使用break或continue跳出或者跳过循环
            使用return只能退出当前一次循环的执行体
         */
        var numbers=[Int](0...7)
        numbers.forEach { (num) in
         
            print(num*10)
        }

数组的索引和值

  /*
     
         startIndex:返回第一个元素的位置,对于数组来说,永远都是0
         endIndex:返回最后一个元素索引+1的位置,对于数组来说等同于count.
         如果数组为空,startIndex等同于endIndex.
                     */
        for (index,num) in numbers.enumerated() {
            
            print("\(index)+\(num)")
            
        }
        
        //获取索引区间
        for i in numbers.indices {
            
            print("\(i)")
        }

查找操作

  /*
       
           contains(_:)判断数组中是否包含给定元素
           contains(where:)判断数组中是否包含给定条件的元素
           allSatisfy(_:)判断数组的每一个元素都符合给定的条件
         first:返回数组中第一个元素(optional),如果数组为空,返回Nil.
         last:返回数组中最后一个元素(optional),如果数组为空,返回Nil.
         first(where:):返回数组中第一个符合给定条件的元素
         last(where:):返回数组中最后一个符合给定条件的元素
         firstIndex(of:):返回给定的元素在数组中出现的第一个位置(optional)
         lastIndex(of:):返回给定的元素在数组中出现的最后一个位置(optional)
         max():返回数组中最大元素
         min():返回数组中最小元素
        */
        var array5=[10,20,45,30,98,101,30,4];
        print(array5.allSatisfy({$0>10}))//false
        print(array5.first)//10
        print(array5.last)//4
        print(array5.first(where: {$0>25}))//45
        print(array5.last(where: {$0>25}))//30
        print(array5.firstIndex(of: 30))//3
        print(array5.lastIndex(of: 20))//1
        print(array5.max())//101
        print(array5.min())//10
        

数组的添加和删除

 var numbers2=[Int](2...7)
        numbers2.append(100)//在末尾添加一个元素
        print(numbers2)
        numbers2.append(contentsOf: 101...105)//在末尾添加多个元素
        print(numbers2)
        numbers2.insert(1, at: 0)//在指定位置插入一个元素
        numbers2.insert(contentsOf: 101...103, at: 0)//在指定位置插入多个元素
        numbers2.remove(at: 1)//移除并返回指定位置的一个元素
        numbers2.removeFirst()//移除并返回数组的第一个元素
        numbers2.popLast()//移除并返回数组中的最后一个元素(optional),数组为空返回nil
        numbers2.remove(at: 1)//移除并返回指定位置的一个元素
        numbers2.removeFirst()//移除并返回数组中的第一个元素
        numbers2.removeFirst(2)//移除数组前面多个元素
        numbers2.removeLast(2)//移除数组后面多个元素
        numbers2.removeSubrange(1...2)//移除数组中给定范围的元素
        numbers2.removeAll()//移除数组中所有元素
        numbers2.removeAll(keepingCapacity: true)//移除数组中所有元素,保留数组容量
        

ArraySlice

/*
         5.ArraySlice:
         dropFirst(:):"移除"原数组前面指定个数的元素得到一个ArraySlice
         dropLast(:):"移除"原数组后面指定个数的元素得到一个ArraySlice
         drop(:):"移除"原数组符合指定条件的元素得到一个ArraySlice
         prefix():获取数组前面指定元素个数的元素组成的ArraySlice
         prefix(upTo: ):获取数组到指定位置(不包含指定位置)前面元素组成的ArraySlice
         prefix(through: ):获取数组到指定位置(包含指定位置)前面元素组成的ArraySlice
         prefix(while: ):获取数组前面符合条件的元素(到第一个不符合条件的元素截止)组成的ArraySlice
         suffix():获取数组后面指定个数的元素组成的ArraySlice
         suffix(from:):获取数组到指定位置到结尾(包含指定位置)的元素组成的ArraySlice
         */
        
        let array6=[5,2,10,1,0,100,46,99];
        array6.dropFirst()//[2,10,1,0,100,46,99];
    
        array6.dropFirst(3)//[1,0,100,46,99];
        array6.dropLast()//[5,2,10,1,0,100,46];
        array6.dropLast(3)//[5,2,10,1,0];

数组元素的随机化:

/*
         6.数组元素的随机化:
         array6.shuffle():在原数组上将数组元素打乱,只能作用在数组变量上
         array6.shuffled():返回原数组的随机化数组,可以作用在数组变量和常量上
         array6.reverse():在原数组上将元素逆序,只能作用在数组变量上
         array6.reversed():返回原数组的逆序"集合表示",可以作用在数组变量和常量上.该方法不会分配新内存空间
         array6.partition():将数组已某个条件分组,数组前部分都是不符合条件的元素,数组后半部分都是符合条件的元素
         array6.sort():在原数组上将元素排序,只能作用在数组变量上
         array6.sortd():返回原数组的排序结果数组,可以作用在数组变量和常量上
         array6.swapAt(<#T##i: Int##Int#>, <#T##j: Int##Int#>):交换指定位置的两个元素
         */

字符串数组拼接:

 
        /*
      
         joined():拼接字符串数组里的所有元素为一个字符串
         joined(sequence:):以给定的分隔符拼接字符串数组里的所有元素为一个字符串

         */
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值