array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 元组-列表 - 爱码网

元组

元组可以用来包含一组不同类型的值。例如:姓名,年龄,性别,出生年月。元组的元素是不可变的。

定义元组

使用括号来定义元组

val/var 元组 = (元素1, 元素2, 元素3....)

使用箭头来定义元组(元组只有两个元素)

val/var 元组 = 元素1->元素2

参考代码

scala> val a = ("zhangsan", 20)

a: (String, Int) = (zhangsan,20)

 

scala> val a = "zhangsan" -> 20

a: (String, Int) = (zhangsan,20)

访问元组

使用_1_2_3....来访问元组中的元素,_1表示访问第一个元素,依次类推

参考代码

scala> val a = "zhangsan" -> "male"

a: (String, String) = (zhangsan,male)

 

/获取第一个元素

scala> a._1

res41: String = zhangsan

 

获取第二个元素

scala> a._2

res42: String = male

列表

列表是scala中最重要的、也是最常用的数据结构。List具备以下性质:

  1. 可以保存重复的值
  2. 有先后顺序

在scala中,也有两种列表,一种是不可变列表、另一种是可变列表

定义

不可变列表就是列表的元素、长度都是不可变的

语法

val/var 变量名 = List(元素1, 元素2, 元素3...)

使用Nil创建一个不可变的空列表

val/var 变量名 = Nil

使用::方法创建一个不可变列表

val/var 变量名 = 元素1 :: 元素2 :: Nil

使用::拼接方式来创建列表,必须在最后添加一个Nil

示例一

创建一个不可变列表,存放以下几个元素(1,2,3,4)

参考代码

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

示例二

使用Nil创建一个不可变的空列表

参考代码

scala> val a = Nil
a: scala.collection.immutable.Nil.type = List()

示例三

使用::方法创建列表,包含-2、-1两个元素

参考代码

scala> val a = -2 :: -1 :: Nil
a: List[Int] = List(-2, -1)

可变列表

可变列表就是列表的元素、长度都是可变的

要使用可变列表,先要导入import scala.collection.mutable.ListBuffer

  1. 可变集合都在mutable包中
  2. 不可变集合都在immutable包中(默认导入)

定义

使用ListBuffer[元素类型]()创建空的可变列表,语法结构:

val/var 变量名 = ListBuffer[Int]()

使用ListBuffer(元素1, 元素2, 元素3...)创建可变列表,语法结构:

val/var 变量名 = ListBuffer(元素1,元素2,元素3...)

示例一

创建空的整形可变列表

参考代码

  scala> val a = ListBuffer[Int]()

  a: scala.collection.mutable.ListBuffer[Int] = ListBuffer()

示例二

创建一个可变列表,包含以下元素:1,2,3,4

参考代码

scala> val a = ListBuffer(1,2,3,4)

a: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)

可变列表操作

  1. 获取元素(使用括号访问(索引值)
  2. 添加元素(+=
  3. 追加一个列表(++=
  4. 更改元素(使用括号获取元素,然后进行赋值
  5. 删除元素(-=
  6. 转换为ListtoList
  7. 转换为ArraytoArray

示例

  1. 定义一个可变列表包含以下元素:1,2,3
  2. 获取第一个元素
  3. 添加一个新的元素:4
  4. 追加一个列表,该列表包含以下元素:5,6,7
  5. 删除元素7
  6. 将可变列表转换为不可变列表
  7. 将可变列表转换为数组

参考代码

/导入可变列表

scala> import scala.collection.mutable.ListBuffer

import scala.collection.mutable.ListBuffer

 

创建可变列表

scala> val a = ListBuffer(1,2,3)

a: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

 

 获取第一个元素

scala> a(0)

res19: Int = 1

 

追加一个元素

scala> a += 4

res20: a.type = ListBuffer(1, 2, 3, 4)

 

追加一个列表

scala> a ++= List(5,6,7)

res21: a.type = ListBuffer(1, 2, 3, 4, 5, 6, 7)

 

删除元素

scala> a -= 7

res22: a.type = ListBuffer(1, 2, 3, 4, 5, 6)

 

转换为不可变列表

scala> a.toList

res23: List[Int] = List(1, 2, 3, 4, 5, 6)

 

转换为数组

scala> a.toArray

res24: Array[Int] = Array(1, 2, 3, 4, 5, 6)

列表常用操作

以下是列表常用的操作

  1. 判断列表是否为空(isEmpty
  2. 拼接两个列表(++
  3. 获取列表的首个元素(head)和剩余部分(tail)
  4. 反转列表(reverse
  5. 获取前缀(take)、获取后缀(drop
  6. 扁平化(flatten
  7. 拉链(zip)和拉开(unzip
  8. 转换字符串(toString
  9. 生成字符串(mkString
  10. 并集(union
  11. 交集(intersect
  12. 差集(diff

判断列表是否为空

参考代码

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> a.isEmpty
res51: Boolean = false

拼接两个列表

参考代码

scala> val a = List(1,2,3)
a: List[Int] = List(1, 2, 3)

scala> val b = List(4,5,6)
b: List[Int] = List(4, 5, 6)

scala> a ++ b
res52: List[Int] = List(1, 2, 3, 4, 5, 6)

获取列表的首个元素和剩余部分

参考代码

scala> val a = List(1,2,3)
a: List[Int] = List(1, 2, 3)

scala> a.head
res4: Int = 1

scala> a.tail
res5: List[Int] = List(2, 3)

反转列表

scala> val a = List(1,2,3)
a: List[Int] = List(1, 2, 3)

scala> a.reverse
res6: List[Int] = List(3, 2, 1)

获取列表前缀和后缀

参考代码

scala> val a = List(1,2,3,4,5)

a: List[Int] = List(1, 2, 3, 4, 5)

 

scala> a.take(3)

res56: List[Int] = List(1, 2, 3)

 

scala> a.drop(3)

res60: List[Int] = List(4, 5)

扁平化(压平)

扁平化表示将列表中的     列表中的所有元素放到一个列表中。

元组-列表

参考代码

scala> val a = List(List(1,2), List(3), List(4,5))

a: List[List[Int]] = List(List(1, 2), List(3), List(4, 5))

 

scala> a.flatten

res0: List[Int] = List(1, 2, 3, 4, 5)

拉链与拉开

  1. 拉链:使用zip将两个列表,组合成一个元素为元组的列表
  2. 拉开:将一个包含元组的列表,解开成包含两个列表的元组

参考代码

scala> val a = List("zhangsan", "lisi", "wangwu")

a: List[String] = List(zhangsan, lisi, wangwu)

 

scala> val b = List(19, 20, 21)

b: List[Int] = List(19, 20, 21)

 

scala> a.zip(b)

res1: List[(String, Int)] = List((zhangsan,19), (lisi,20), (wangwu,21))

参考代码

scala> res1.unzip
res2: (List[String], List[Int]) = (List(zhangsan, lisi, wangwu),List(19, 20, 21))

 

相关文章: