当前位置: 首页 > news >正文

iOS开发Swift-集合类型

集合基本类型:数组 Array (有序), 集合 Set (无序不重复), 字典 Dictionary (无序键值对)

1.数组 Arrays

(1)数组的表示

Array<Element>
[Element]

(2)创建空数组

var someInts: [Int] = []
someInts.count    //数组长度

(3)带值数组

var a = Array(repeating: 0.0, count:3)    //[0.0, 0.0, 0.0]
//repeating:初始值.count:长度

(4)两数组相加创建数组

var a = Array(reapeating: 0.0, count = 3)
var b = Array(reapeating: 2.5, count = 3)
var c = a + b    //[0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

(5)字面量创造数组

var List: [String] = ["Eggs", "Milk"]   //或者
var List = ["Eggs", "Milk"]

(6)访问数组

List.count    //长度(数据量)
List.isEmpty   //是否为空
List[0]    //Eggs
var egg = List[0]     //将第一个数组的值赋给egg

(7)添加

List.append("Flour")   //append()方法添加
List += ["Powder"]    //直接添加一个数据
List += ["Spread", "Cheese", "Butter"]    //直接添加多个数据
List.insert("up", at: 0)    //在第一个数据前添加"up"

(8)修改

List[0] = "Six Eggs"
List[4...6] = ["Banana", "Apple"]

(9)删除

let a = List.remove(at: 0)  //索引值为0的项被移除。a被赋值被删除的那一项的值。后边的项自动往前补
let apple = List.removeLast()   //移除最后一项,a被赋值被删除的那一项的值

(10)遍历

for item in List{  print(item)
}

同时需要索引和值时:

for (index,value) in List.enumerated(){print( "Item \( String(index + 1) ): \(value)" )
}

2.集合 Sets

(1)集合的表示

Set<Element>

(2)构造一个集合

var letters = Set<Character>()      //或
letters.insert("a")
letters = []

(3)字面量创造集合

var fav: Set<String> = ["Rock", "Class", "Hip"]    //或
var fav: Set = ["Rock", "Class", "Hip"]

(4)访问

fav.count    //长度
fav.isEmpty    //是否为空
fav.contains("Funk")  //检查是否包含"Funk"值

(5)添加

fav.insert("Jazz")

(6)删除

fav.remove("Rock")   //如果有这个值则返回这个值,如果没有则返回nil
fav.removeAll()

(7)遍历

for g in fav{print("\(g)")
}
//返回一个有序数组
for g in fav.sorted(){print("\(g)")
}

(8)集合操作

let add: Set = [1, 3, 5, 7, 9]
let even: Set = [0, 2, 4, 6, 8]
let single: Set = [2, 3, 5, 7]
add.union(even).sorted()    //[]   交集
add.intersection(even).sorted()   //[1, 9]   add不在single中的值的集合
add.symmetricDifference(single).sorted()    //[1, 2, 9]   add和single不相交的值

(9)集合关系

let h: Set = ["🐕", "🐱"]
let f: Set = ["🐕", "🐱", "🐥"]
let c: Set = ["🐦"]
//==: 全部相同
h.isSubset(of: f)  //true  h是否被f全包
f.isSuperset(of: h)   //true   f是否全包h
f.isDisjoint(with: c)  //true  f,c是否无交集
//isStrictSubset(of: ) / isStrictSuperSet(of: )    A是否是B的子集或父集且AB不相等

3.字典 Dictionary

(1)字典的表示

Dictionary<Key, Value>  或者  [Key: Value]

(2)创建空字典

var names: [Int: String] = [ : ]   //或者
names[16] = "sixteen"
names = [ : ]

(3)字典字面量创建字典

var airports: [String: String] = ["a": "1", "b": "2"]   //或者
var airports = ["a": "1", "b": "2"]

(4)访问

airports.count     //数量
airports,isEmpty    //是否为空

(5)新增

airports["c"] = "3"

(6)修改

airports["c"] = "4"

(7)更新

airports.updateValue("6", forkey: "a")
//如果forkey存在值则修改,返回修改前的值。不存在则返回nil

(8)检索键对应的值。无值则返回nil

airName = airports["a"]

(9)移除键值对

airports["a"] = nil   //或者
airports.removeValue(forkey: "a")    //存在时返回被移除的值,不存在时返回nil

(10)遍历

//1
for (airCode, airName) in airports{print("\(airCode) : \(airName)")
}
//2
for airCode in airports.keys{print("code: \(airCode)")
}
//3
let airCodes = [String](airports.keys)
let airNames = [String](airports.values)

相关文章:

iOS开发Swift-集合类型

集合基本类型&#xff1a;数组 Array (有序)&#xff0c; 集合 Set (无序不重复)&#xff0c; 字典 Dictionary (无序键值对) 1.数组 Arrays (1)数组的表示 Array<Element> [Element](2)创建空数组 var someInts: [Int] [] someInts.count //数组长度(3)带值数组 var…...

【keepalived双机热备与 lvs(DR)】

目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalivedlvs&#xff08;DR&#xff09; 1.作…...

C++笔记之静态成员函数可以在类外部访问私有构造函数吗?

C笔记之静态成员函数可以在类外部访问私有构造函数吗&#xff1f; code review! 静态成员函数可以在类外部访问私有构造函数。在C中&#xff0c;访问控制是在编译时执行的&#xff0c;而不是在运行时执行的。这意味着静态成员函数在编译时是与类本身相关联的&#xff0c;而不…...

最新SQLMap进阶技术

SQLMap进阶&#xff1a;参数讲解 &#xff08;1&#xff09;–level 5&#xff1a;探测等级。 参数“–level 5”指需要执行的测试等级&#xff0c;一共有5个等级&#xff08;1~5级&#xff09;&#xff0c;可不加“level”&#xff0c;默认是1级。可以在xml/payloads.xml中看…...

【BurpSuite常用功能介绍】

BurpSuite的使用 1.运行BurpSuite 2.代理设置 打开软件后&#xff0c;我们第一件事就应该去调试软件和浏览器的代理&#xff0c;让BURP能够正常工作抓包 proxy--options&#xff0c;我端口默认使用8080 然后我们打开一个浏览器&#xff0c;进入代理设置 (注意一点&#xff0…...

Leetcode 108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 分析 给定一个有序数组&#xff0c;要求转换为二叉搜索树。 数组是有序的&#xff0c;并且要求二叉树。 这里看到数组是有序的&#xff0c;马上想到二分&#xff0c;但是又不需要完全二分 实现。 再复习二叉搜索树的结构特点&#xff1a; 左…...

小匠物联联合亚马逊云助力企业数智化出海

如何让家电企业出海产品数智化之路走上康庄大道&#xff1f;8月25日,亚马逊云科技[创新成长企业专列]这趟上云快车将开往宁波站&#xff0c;助力宁波的制造、软件等企业扬帆起航&#xff01;现场举办“亚马逊云科技助力企业出海数智沙龙”&#xff0c;小匠物联受邀出席。 会议现…...

(五)k8s实战-配置管理

一、ConfigMap 使用 kubectl create configmap -h 查看示例&#xff0c;构建 configmap 对象 1) 基于文件夹&#xff0c;加载文件夹下所有配置文件&#xff0c;创建 kubectl create configmap <configmapName> --from-file<dirPath>2) 指定配置文件&#xff0c;创…...

GPT---1234

GPT:《Improving Language Understanding by Generative Pre-Training》 下载地址:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdfhttps://cdn.openai.com/research-covers/language-unsupervised/language_understa…...

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &…...

python进行数据分析:数据预处理

六大数据类型 见python基本功 import numpy as np import pandas as pd数据预处理 缺失值处理 float_data pd.Series([1.2, -3.5, np.nan, 0]) float_data0 1.2 1 -3.5 2 NaN 3 0.0 dtype: float64查看缺失值 float_data.isna()0 False 1 …...

百度Apollo:引领自动驾驶技术的创新与突破

文章目录 前言一、技术创新二、开放合作三、生态建设四、安全可靠性总结 前言 随着科技的迅猛发展&#xff0c;自动驾驶技术正成为未来交通领域的重要发展方向。在这个领域中&#xff0c;百度Apollo作为中国领先的自动驾驶平台&#xff0c;以其卓越的创新能力和开放合作精神&a…...

Python爬虫 异步、缓存技巧

在进行大规模数据抓取时&#xff0c;Python爬虫的速度和效率是至关重要的。本文将介绍如何通过异步请求、缓存和代理池等技巧来优化Python爬虫的速度和性能。我们提供了实用的方案和代码示例&#xff0c;帮助你加速数据抓取过程&#xff0c;提高爬虫的效率。 使用异步请求、缓…...

YOLOv5屏蔽区域检测(选择区域检测)

YOLOv5屏蔽区域检测以及选择区域检测 前期准备labelme选择mask区域 代码改动 前期准备 思路就是通过一个mask掩膜&#xff0c;对我们想要屏蔽或者选择的区域进行遮挡处理&#xff0c;在推理的时候&#xff0c;将有mask掩膜的图像输入&#xff0c;将最后的结果显示在原始图像上…...

记录一次presto sql执行报错 Error executing query的解决办法

在执行presto sql 时报错截图如下&#xff1a; 查看后台执行报错日志&#xff1a; java.sql.SQLException: Error executing query at com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:307) at com.facebook.presto.jdbc.PrestoStatement.exe…...

Android Studio开发之路 (五)导入OpenCV以及报错解决

一、步骤 官网下载opencv包&#xff08;我下的是4.7.0&#xff09;并解压&#xff0c;openvc官网 先创建一个空项目&#xff0c;简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹&#xff0c; modu…...

vue3.3中ref和reactive原理源代码分析

源码是ts编写的,这里部分简化成js便于阅读 function ref(value) {return createRef(value, false) }function createRef(rawValue, shallow) { //shallow是否是浅层定义数据,用于区别ref和shallowRefif (isRef(rawValue)) {//如果已经是ref直接返回源数据return rawValue}retu…...

10.Oracle中decode函数

【函数格式】&#xff1a; decode ( expression, condition_01, result_01, condition_02, result_02, ......, condition_n, result_n, result_default) 【函数说明】&#xff1a; 若表达式expression值与condition_01值匹配&#xff0c;则返回result_01&#xff0c;…...

Podman安装部署kafka和管理界面(快速跑起来)

#1.拉取镜像 podman pull bitnami/zookeeper podman pull bitnami/kafka#2.创建子网 podman network create knet#3.创建zookeeper podman run -itd --name zookeeper-server -p 2181:2181 \ --net knet \ -e ALLOW_ANONYMOUS_LOGINyes \ bitnami/zookeeper:latest#3.1查看z…...

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…...

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 &#x1f4cc;参考文章&#xff1a;https://xiaozhuanlan.com/topic/6058234791&#x1f39e;实现效果演示&#xff1a; &#x1f516;上图中的读到的FLASH_ID所指的是针对不同容量&#xff0c;所对应的ID。 //W25X/Q不同容量对应…...

vue3-ts- element-plus新增组件-过滤

新增组件-所有值为空时过滤 <el-form-item label"家庭成员"><divclass"username-box"v-for"(item, index) in form.namelist":key"index"><div>姓名&#xff1a;<el-input v-model"item.name" placeho…...

PostgreSQL SQL优化

Oracle SQL优化 一、在字段里面写的子查询放到from后面&#xff0c;用left join&#xff0c;会大幅提高SQL查询速度。 一、在字段里面写的子查询放到from后面&#xff0c;用left join&#xff0c;会大幅提高SQL查询速度。...

debian12网络静态ip配置-OSSIM 安全漏洞扫描系统平台

本配置适合于服务器上的静态ip配置&#xff0c;该方法简单可靠。 1 临时配置 ifconfig eth0 192.168.1.97 netmask 255.255.255.0 broadcast 192.168.1.255 ip route add default via 192.168.1.1 2 主要的网络配置文件 /etc/network/interfaces /etc/resolv.conf 3 配置…...

微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件

Visual Studio Code V1.66.0 中文版 大小&#xff1a;75.30 MB类别&#xff1a;文字处理 本地下载 Markdown 是一种轻量级标记语言&#xff0c;当开发者想要格式化代码但又不想牺牲易读性时&#xff0c;Markdown 是一个很好的解决方案&#xff0c;比如 GitHub 就使用 Markdo…...

阿里云通义千问开源第二波!大规模视觉语言模型Qwen-VL上线魔搭社区

通义千问开源第二波&#xff01;8月25日消息&#xff0c;阿里云推出大规模视觉语言模型Qwen-VL&#xff0c;一步到位、直接开源。Qwen-VL以通义千问70亿参数模型Qwen-7B为基座语言模型研发&#xff0c;支持图文输入&#xff0c;具备多模态信息理解能力。在主流的多模态任务评测…...

在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)

Jenkins介绍 Jenkins是一个开源软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 将项目代码的svn地址配置在Jenkins&#xff0c;就可以直接在Je…...

《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页

目录 前言 电影评价系统的分页是什么&#xff1f;它具体的作用体现在哪些方面&#xff1f; 一、slice的含义、语法和作用以及created的作用 slice是什么&#xff1f;slice有什么语法&#xff1f;slice的作用体现在哪些方面&#xff1f; created生命周期的作用&#xff1a;…...

NO.04 MyBatis的各种查询功能

目录 1、查询一个实体类对象 2、查询一个List集合 3、查询单个数据 5、查询多条数据并存储在Map集合中 5.1 方法一&#xff1a;将数据存储在map集合中&#xff0c;再将map集合存储在List集合中 5.2 方法二&#xff1a;将数据存储在map集合中 6、MyBatis中为Java中常用的…...

Spring循环依赖

一、Autowired依赖注入的缓存 二、Resource依赖注入过程 三、循环依赖 singletonObjects&#xff1a;缓存经过了完整生命周期的beanearlySingletonObjects&#xff1a;缓存未经过完整生命周期的bean&#xff0c;如果某个bean出现了循环依赖&#xff0c;就会提前把这个暂时未经过…...

h5微信网站建设/搜索引擎网址有哪些

假如p是质数&#xff0c;且gcd(a,p)1&#xff0c;那么 a^(p-1)≡1&#xff08;mod p&#xff09; 也就是a^(p-1) %p1 据说它是欧拉定理的一种特殊情况&#xff0c;也就是 比较神奇&#xff0c;据说很出名很出名很出名 先回顾一下乘法逆元 x的最小整数解称为a模m的逆元 如果这个…...

内蒙古网站制作/aso具体优化

那个百分十先生&#xff1a;Python操作Excel的Xlwings教程&#xff08;五&#xff09;​zhuanlan.zhihu.com前几篇文章写的是关于Xlwings的相关知识&#xff0c;介绍了其相关API的使用方法&#xff0c;大家在使用Xlwing对Excel进行操作的时候&#xff0c;就可以使用推文中介绍的…...

龙华网站设计/电子商务网站设计方案

VS2019添加图片背景&#xff1a; 第一步&#xff1a;下载安装扩展模块 在扩展>管理扩展里&#xff0c;点击“联机”&#xff0c;在搜索框里搜索ClaudiaIDE和Color Theme Editor for Visual Studio 2019两个扩展模块,分别点击下载。下载后&#xff0c;关闭编译器&#xff0…...

威海市环翠区建设局网站/网络促销方案

2019独角兽企业重金招聘Python工程师标准>>> 概述 Group by 既将数据分组后处理 一般结合sum、count等使用 Group By用法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name 注意&#…...

网站建设与管理是什么/百度下载app下载

客户 房屋租赁管理局 故障现象:SQL2005 分组数据库 主数据库2GB 10个分组NDF 数据库 每个3GB&#xff0c;数据库报置疑&#xff0c;脱机。客户说在赛格找其他恢复商 修复该分组数据库 耗费了3天时间&#xff0c;最终修复无望。后在 同行的介绍下联系上我们&#xff0c;了解故…...

科技小制作怎么做视频网站/应用商店下载

我们认识了inputbox和msgbox&#xff0c;能够实现网页和用户的对话&#xff0c;并能实现二个数的相加结果显示。我们常说程序的出现是为了解决现实生活中的问题&#xff0c;可现实的问题不可能都是112般的简单&#xff0c;我们有时候会面对不同选择&#xff0c;选择不同&#x…...