scala中Array、List、Tuple异同
https://blog.csdn.net/baidu_35570545/article/details/77893421
2017年09月08日 13:12:59 水yu月 阅读数:422 标签: scala 更多
个人分类: scala
版权声明:欢迎转载,转载请注明出处! https://blog.csdn.net/baidu_35570545/article/details/77893421
各数据结构是否长度可变?
各数据结构是否内容可变?
各数据结构声明方式有何差别?
各数据结构访问方式有何差异?
- 从数据结构的角度:
1)Array、List、Tuple都是不可变长的,BufferArray是可变长的
2)Array和List中的元素类型必须相同,Tuple可以存放不同的类型
3)Array元素可变,List、Tuple元素不可变
- 声明的角度:
1) Array、List声明时不能加new,Tuple声明时可加可不加
Array声明:
<span style="color:#000000"><code class="language-scala"><span style="color:#000088 !important">val</span> array1 = Array(<span style="color:#006666 !important">1</span>,<span style="color:#006666 !important">2</span>,<span style="color:#006666 !important">3</span>)</code></span>
- 1
List声明:
<span style="color:#000000"><code class="language-scala"><span style="color:#000088 !important">val</span> list1 = List(<span style="color:#006666 !important">1</span>,<span style="color:#006666 !important">2</span>,<span style="color:#006666 !important">3</span>)</code></span>
- 1
Tuple声明的三种方式:
<span style="color:#000000"><code class="language-scala"><span style="color:#000088 !important">val</span> tuple1 = (<span style="color:#006666 !important">1</span>,<span style="color:#000088 !important">true</span>,<span style="color:#009900 !important">"aaa"</span>)
<span style="color:#000088 !important">val</span> tuple2 = Tuple3(<span style="color:#006666 !important">1</span>,<span style="color:#000088 !important">true</span>,<span style="color:#009900 !important">"aaa"</span>)
<span style="color:#000088 !important">val</span> tuple3 = <span style="color:#000088 !important">new</span> Tuple3(<span style="color:#006666 !important">1</span>,<span style="color:#000088 !important">true</span>,<span style="color:#009900 !important">"aaa"</span>)</code></span>
- 1
- 2
- 3
- 访问的角度:
1)Array、List都是从下标0开始访问,形式为Array(0)、List(0)
<span style="color:#000000"><code class="language-scala"><span style="color:#000088 !important">val</span> array1 = Array(<span style="color:#006666 !important">1</span>,<span style="color:#006666 !important">2</span>,<span style="color:#006666 !important">3</span>)
println(array1(<span style="color:#006666 !important">0</span>)) <span style="color:#880000 !important"><em>//1</em></span>
println(array1(<span style="color:#006666 !important">2</span>)) <span style="color:#880000 !important"><em>//3</em></span></code></span>
- 1
- 2
- 3
2)Tuple从下标1开始访问,形式为Tuple._1
<span style="color:#000000"><code class="language-scala"><span style="color:#000088 !important">val</span> tuple1 = <span style="color:#000088 !important">new</span> Tuple3(<span style="color:#006666 !important">1</span>,<span style="color:#000088 !important">true</span>,<span style="color:#009900 !important">"aaa"</span>)
println(tuple1._1) <span style="color:#880000 !important"><em>//1</em></span>
println(tuple1._3) <span style="color:#880000 !important"><em>//"aaa"</em></span></code></span>