Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12185
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2017-01-20 10:16
文章分类

全部博文(16)

文章存档

2017年(16)

我的朋友

分类: 大数据

2017-02-09 19:06:14

3.scala容器 input{ margin: 0 0 0 -20px; } .video_container{ width: 100%; display: table; text-align: center; position: relative; padding-bottom: 56.25%!important; } .slideshare_container .inner{ position: relative; width: 100%; } .slideshare_container .inner iframe{ width: 100%; height: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; } .video_container iframe{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; vertical-align: middle; } kbd{ display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px #ccc; border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; } .blank_anchor_id { float: left; } .blank_anchor_id { visibility: hidden; } .blank_anchor_id:before { content: 'a'; } blockquote footer{ margin: 1em 0; font-style: italic; } blockquote footer cite { margin: 0 1em; } /*wavedrom start*/ .wavedrom_svg text, .wavedrom_svg_defs text { font-size:11pt; font-style:normal; font-variant:normal; font-weight:normal; font-stretch:normal; text-align:center; fill-opacity:1; font-family:Helvetica } .wavedrom_svg .muted, .wavedrom_svg_defs .muted { fill:#aaa } .wavedrom_svg .warning, .wavedrom_svg_defs .warning { fill:#f6b900 } .wavedrom_svg .error, .wavedrom_svg_defs .error { fill:#f60000 } .wavedrom_svg .info, .wavedrom_svg_defs .info { fill:#0041c4 } .wavedrom_svg .success, .wavedrom_svg_defs .success { fill:#00ab00 } .wavedrom_svg .h1, .wavedrom_svg_defs .h1 { font-size:33pt; font-weight:bold } .wavedrom_svg .h2, .wavedrom_svg_defs .h2 { font-size:27pt; font-weight:bold } .wavedrom_svg .h3, .wavedrom_svg_defs .h3 { font-size:20pt; font-weight:bold } .wavedrom_svg .h4, .wavedrom_svg_defs .h4 { font-size:14pt; font-weight:bold } .wavedrom_svg .h5, .wavedrom_svg_defs .h5 { font-size:11pt; font-weight:bold } .wavedrom_svg .h6, .wavedrom_svg_defs .h6 { font-size:8pt; font-weight:bold } .wavedrom_svg_defs .s1 { fill:none; stroke:#000; stroke-width:1; stroke-linecap:round; stroke-linejoin:miter; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:none } .wavedrom_svg_defs .s2 { fill:none; stroke:#000; stroke-width:0.5; stroke-linecap:round; stroke-linejoin:miter; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:none } .wavedrom_svg_defs .s3 { color:#000; fill:none; stroke:#000; stroke-width:1; stroke-linecap:round; stroke-linejoin:miter; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:1,3; stroke-dashoffset:0; marker:none; visibility:visible; display:inline; overflow:visible; enable-background:accumulate } .wavedrom_svg_defs .s4 { color:#000; fill:none; stroke:#000; stroke-width:1; stroke-linecap:round; stroke-linejoin:miter; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:none; stroke-dashoffset:0; marker:none; visibility:visible; display:inline; overflow:visible } .wavedrom_svg_defs .s5 { fill:#fff; stroke:none } .wavedrom_svg_defs .s6 { color:#000; fill:#ffffb4; fill-opacity:1; fill-rule:nonzero; stroke:none; stroke-width:1px; marker:none; visibility:visible; display:inline; overflow:visible; enable-background:accumulate } .wavedrom_svg_defs .s7 { color:#000; fill:#ffe0b9; fill-opacity:1; fill-rule:nonzero; stroke:none; stroke-width:1px; marker:none; visibility:visible; display:inline; overflow:visible; enable-background:accumulate } .wavedrom_svg_defs .s8 { color:#000; fill:#b9e0ff; fill-opacity:1; fill-rule:nonzero; stroke:none; stroke-width:1px; marker:none; visibility:visible; display:inline; overflow:visible; enable-background:accumulate } .wavedrom_svg_defs .s9 { fill:#000; fill-opacity:1; stroke:none } .wavedrom_svg_defs .s10 { color:#000; fill:#fff; fill-opacity:1; fill-rule:nonzero; stroke:none; stroke-width:1px; marker:none; visibility:visible; display:inline; overflow:visible; enable-background:accumulate } .wavedrom_svg_defs .s11 { fill:#0041c4; fill-opacity:1; stroke:none } .wavedrom_svg_defs .s12 { fill:none; stroke:#0041c4; stroke-width:1; stroke-linecap:round; stroke-linejoin:miter; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:none } /*wavedrom stop*/ /* Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull */ .hljs { display: block; overflow-x: auto; padding: 0.5em; background: #fdf6e3; color: #657b83; -webkit-text-size-adjust: none; } .hljs-comment, .diff .hljs-header, .hljs-doctype, .hljs-pi, .lisp .hljs-string, .hljs-javadoc { color: #93a1a1; } /* Solarized Green */ .hljs-keyword, .hljs-winutils, .method, .hljs-addition, .css .hljs-tag, .hljs-request, .hljs-status, .nginx .hljs-title { color: #859900; } /* Solarized Cyan */ .hljs-number, .hljs-command, .hljs-string, .hljs-tag .hljs-value, .hljs-rule .hljs-value, .hljs-phpdoc, .hljs-dartdoc, .tex .hljs-formula, .hljs-regexp, .hljs-hexcolor, .hljs-link_url { color: #2aa198; } /* Solarized Blue */ .hljs-title, .hljs-localvars, .hljs-chunk, .hljs-decorator, .hljs-built_in, .hljs-identifier, .vhdl .hljs-literal, .hljs-id, .css .hljs-function, .hljs-name { color: #268bd2; } /* Solarized Yellow */ .hljs-attribute, .hljs-variable, .lisp .hljs-body, .smalltalk .hljs-number, .hljs-constant, .hljs-class .hljs-title, .hljs-parent, .hljs-type, .hljs-link_reference { color: #b58900; } /* Solarized Orange */ .hljs-preprocessor, .hljs-preprocessor .hljs-keyword, .hljs-pragma, .hljs-shebang, .hljs-symbol, .hljs-symbol .hljs-string, .diff .hljs-change, .hljs-special, .hljs-attr_selector, .hljs-subst, .hljs-cdata, .css .hljs-pseudo, .hljs-header { color: #cb4b16; } /* Solarized Red */ .hljs-deletion, .hljs-important { color: #dc322f; } /* Solarized Violet */ .hljs-link_label { color: #6c71c4; } .tex .hljs-formula { background: #eee8d5; }

3.scala容器

3.1数组

(1) 定长数组(Array)

//直接声明使用
val array = Array("a","b","c")

//设置数组长度并赋值
val array = new Array[String](3)
array(0) = "a"
array(1) = "b"
array(2) = "c"

(2) 数组缓冲(ArrayBuffer)
数组缓冲是一种可变的数组,类似于Java中的ArrayList,但是ArrayBuffer提供了非常丰富的api

//声明
import scala.collection.multable.ArrayBuffer
val buf = new ArrayBuffer[Int]()

//添加单个元素
buf += 1

//添加多个元素
buf ++= (2,3,4)

//追加一个数组
buf ++= Array(5,6,7)

更多操作可以参考API文档

(3)数组的高级API

//数组内元素求和
Array(1,3,5).sum
//取最大值
Array(1,2,4).max
//排序
val newArray = Array(3,2,5,7,1).sortWith(_>_)

可以自定义排序方法,或者使用scala提供的排序方法,如:

val a = Array(3,2,5,7,1)
//使用快排
scala.util.Sorting.quickSort(a) //不会产生新的数组,原来数组中的元素位置改变

注意:ArrayBuffer不能排序,因为数组缓冲中的元素个数不确定。

(4)与Java互操作
java.util.List转化为scalaArrayBuffer:import scala.collection.JavaConversions.asScalaBuffer
ArrayBuffer转java List: import scala.collection.JavaConversions.bufferAsJavaList

3.2映射

scala中映射也分可变映射和不可变映射。

//创建一个不可变映射
val rank = Map("zs" -> 3,"ls" -> 4)

//创建一个可变的映射,两种方法
val rank = scala.collection.multable.Map("zs" -> 3,"ls" -> 4)
val rank  = new scala.collection.multable.Map[String,Int]()

//添加删除元素
rank +=("ww" -> 5,"zl" -> 6)
rank -= "ww"

//更新可变映射
rank("zs") = 30 

//迭代映射
for((k,v) <- map){ some code}

3.3元组

元组是一种能存放不同数据类型的容器,一般声明如下:

//声明
val tuple = (11.11,12,"bb")

//遍历
tuple.foreach{}
阅读(235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~