Swift和Java关于集合类型的比较

1. 数组申明

Swift: Swift 中的数组是类型安全的,数据值在被存储进入某个数组之前类型必须明确,并且它们中包含的类型必须明确,代码如下:

let array :Array<String>  = ["Eggs", "Milk"]
var array1 : [String] = ["Eggs", "Milk"]
var array2 = ["Eggs", "Milk"]

Java数组申明代码如下:

String[] array = {"Eggs","Milk"};

2. 访问和修改数组

Java主要使用集合对数组封装,对外提供API,在Swift中,数组有很多API供开发者调用,而Java数组没有很多API,常用的就是length这个属性。下面介绍一些Swift中关于数组的API。

var array : [String] = ["Eggs", "Milk"]
        array.append("Flour")
        array += ["Chocolate Spread","Cheese","Butter"]
        if array.isEmpty {
            print("array is empty")

        }else{
            print("array is not empty")
            print("the first item is \(array[0])")
        }

这段代码主要是关于数组非空、取值和添加数组item的API。

2.1 修改数组元素

var array : [String] = ["Eggs", "Milk","Chocolate Spread","Cheese","Butter"]
        array[0] = "big Eggs"//修改数组第一个元素
        array[1...3] = ["big Milk","big Chocolate Spread","big Cheese"]
       //修改数组第二个到第四个元素
        for item in array{
            print("the item is \(item)")
     }

2.2 数组插入元素和删除元素

var array : [String] = ["Eggs", "Milk","Chocolate Spread","Cheese","Butter"]
        array.insert("test insert", atIndex: 0)
        array.removeAtIndex(4)
        for item in array{
            print("\(item)")
        }

2.3 数组的遍历

for in方式,代码如下:

var array : [String] = ["Eggs", "Milk","Chocolate Spread","Cheese","Butter"]
        for item in array{
            print(item)
        }

如果我们同时需要每个数据项的值和索引值,可以使用全局enumerate函数来进行数组遍历。EnumerateSequence返回一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历:

 var array : [String] = ["Eggs", "Milk","Chocolate Spread","Cheese","Butter"]
        for(index, value) in EnumerateSequence(array){
            print("Item \(index + 1): \(value)")
        }

2.4 数组初始化

数组初始化API如下:

var array = [String](count: 3, repeatedValue: "item")
var someInts = [Int]()//申明一个空数组

总结:以上就是关于Swift数组操作的一些笔记,和Java不同,Swift给数组操作提供了大量的API。

3. Swift字典和Java的Map集合比较

字典和Map集合很像,一个定义拥有一个或者多个键值对的字典集合的简单语句,一个键值对是一个key和一个value的结合体。

Swift字典定义,代码如下:

var airports : [String: String] = ["TYO": "Tokyo", "DUB": "Dublin"]
var airports1 = ["TYO": "Tokyo", "DUB": "Dublin"]
//在Swift中定义字典

3.1 读取和修改字典

Swift修改字典API如下:

airports["LHR"] = "London Heathrow"
// "LHR"对应的值 被改为 "London Heathrow
airports.updateValue("London Heathrow", forKey: "LHR")
// "LHR"对应的值 被改为 "London Heathrow

字典删除操作,代码如下:

airports["APL"] = nil
// APL现在被移除了
airports.removeValueForKey("LHR")
// APL现在被移除了

3.2 字典遍历

我们可以使用for-in循环来遍历某个字典中的键值对。每一个字典中的数据项都由(key, value)元组形式返回,并且我们可以使用临时常量或者变量来分解这些元组,代码如下:

var airports : [String: String] = ["TYO": "Tokyo", "DUB": "Dublin"]
        for (airportCode, airportName) in airports{
            print("the airportCode is \(airportCode) and the airportName is \(airportName)")
        }
        print("anthor loop in dictionary")
        for airportCode in airports.keys{
            print("airportCode = \(airportCode)")
        }

如果我们只是需要使用某个字典的键集合或者值集合来作为某个接受Array实例 API 的参数,可以直接使用keys或者values属性直接构造一个新数组,代码如下:

let airportCodes = Array(airports.keys)
// airportCodes is ["TYO", "LHR"]
时间: 2024-12-26 08:06:03

Swift和Java关于集合类型的比较的相关文章

The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对). Swift语言里的数组和字典中存储的数据值类型必须明确. 这意味着我们不能把不正确的数据类型插入其中. 同时这也说明我们完全可以对获取出的值类型非常自信. Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚,也让我们在开发中可以早早地找到任何的类型不匹配错误. 注意: Swift的数组结构在被声明成常

【Swift学习】Swift编程之旅---集合类型之数组(六)

swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类型桥接Foundation的NSArray类 数组类型简单语法 swift数组类型完整写作Array<Element>,Element是数组允许存储值的合法类型,你也可以简单的写作[Element].尽管两种形式在功能上是一样的, 但是我们推荐较短的那种,而且在本文中都会使用这种形式来使用数组.

Swift学习笔记- 4.集合类型

数组 数组的简单语法 写数组应遵循 Array<SomeType> 这样的形式,也可以使用 [someType] 这样的简单语法.推荐使用更短的 数组构造语句 数组字面量: [value1, value2, value3] var shoppingList: [String] = ["Eggs", "Milk”] 由于类型推断机制,当我们用字面量构造只拥有相同类型数值的时候,我们不必把数组的类型定义写清楚.还可以这么写: var shoppingList = [&

Swift入坑系列—集合类型

数组(Arrays) 字典(Dictionaries) 数组(Arrays) 在OC里面,NSArray和NSMutableArray这两个类可以存储任意类型的对象,并且不提供所返回对象的任何特别信息.在Swift中,数据值被存入某个数组之前类型必须明确.方法是通过显式的类型标注或者类型推断,而且不是必须是class类型. //定义了一个存储 字符串类型 的可变数组('var'字段修饰) var shoppingList: [String] = ["Eggs", "Milk&

【Swift学习】Swift编程之旅---集合类型之Dictionaries(八)

字典是一种存储相同类型多重数据的存储器.每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符.和数组中的数据项不同,字典中的数据项并没有具体顺序. 字典写作Dictionary<Key, Value>.也可以写作[Key: Value] 创建空字典 var namesOfIntegers = [Int: String]() // namesOfIntegers is an empty [Int: String] dictionary 类型推断写作[:] namesOf

Swift中的集合类型

一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人员的追捧,其热衷程度并不亚于当红巨星Taylor Swift.相信在不远的将来,swift能够平稳发展,并逐步取代Objective-C. 二.swift的集合类型 下面回归主题.作为一名iOS开发者,我们已经非常熟悉诸如NSArray,NSDictionary,NSSet等常见集合类型,以及它们的可变同类NSMutableArray,NSM

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)

第三章 Collection Types (集合类型) 在Swift中,提供了两种集合类型用来存储一组值:数组和字典.数组有序的存储相同类型的值;字典存储无序的相同类型的值.字典可以通过唯一的标识(就是所说的键)来查询和访问. 在Swift中,数组和字典总是要清晰的标明他们存储数据的类型.这就意味着不可以将错误的类型插入到数组或字典中.同时也意味着你是明确了解你要遍历的数组或字典里面数据的类 型.在Swift中,集合要显式的声明类型来保证在开发中都会明确的知道它能处理的数据类型. 注意点: 在S

Swift的基础,操作符,字符串和集合类型

这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" "/**/", 注意这里"/**/"在Swift可以嵌套使用 表达式结尾不再有分号 整数 你可以声明为Int或者UInt,他们本身适应不同平台(64位, 32位),类似于NSInteger,NSUInteger 也可以直接声明为指定字节数的Int,如: Int8, In