zoukankan      html  css  js  c++  java
  • Scala中的数组

    数组

    数组的两种声明方式,建议声明数组时指定类型。

     访问数组元素时获取数组下标

     数组Array类本身有很多非常方便的方法

     

     变长数组ArrayBuffer,能够动态增加元素,也可以实现与Array的互转

     

     看代码:

     1 import scala.collection.mutable.ArrayBuffer
     2 import java.util.ArrayList
     3 
     4 /**
     5  * 数组
     6  * @author Administrator
     7  */
     8 object TestScalaArray {
     9   def main(args: Array[String]) = {
    10     //定义方式一
    11     var arr1 = new Array[Int](3)  //中括号表示数组的类型,小括号中指定是数组的长度
    12     arr1(1) = 4 //给数组第二个元素复制为4
    13     for(i <- arr1){
    14       println(i)
    15     }
    16     /*
    17      * 输出结果
    18      * 0
    19      * 4
    20      * 0
    21      */
    22     
    23     //定义方式二
    24     var arr2 = Array(1,2,3,4,5,6,"hehe") //中括号表示数组的类型,小括号中指定是数组初始化的值
    25     for(i <- arr2){
    26       println(i)//循环遍历输出arr2中的值
    27     }
    28     
    29     var arr3 = Array(1,2,3,4,5,6)
    30     println(arr3.min)//输出数组中最小值1
    31     println(arr3.max)//输出数组中最小值6
    32     println(arr3.sum)//输出数组中的和
    33     println(arr2.mkString(","))  //和Java中的Arrays.toString(arr)一样
    34     //输出:1,2,3,4,5,6,hehe
    35     println(arr2.mkString("[",",","]"))//这个也和Java中的Arrays.toString(arr)
    36     //输出:[1,2,3,4,5,6,hehe]
    37     
    38     var arr4 = Array(1,2,3,4,5,6)
    39     for(i <- 0 to arr4.length - 1){//for(i <- 0 until arr4.length - 1)
    40       println(arr4(i))
    41     }
    42     
    43     //利用for的推导式产生一个新的数组
    44     var arr5 = for(i <- arr4) yield i + 1
    45     println(arr5.mkString(","))//输出:2,3,4,5,6,7
    46     
    47     
    48     var arr6 = Array("dbd","sdfs","yeres","bc")
    49     println(arr6.min)//输出:bc 按照字典排序
    50     println(arr6.max)//输出:yeres
    51     
    52     var arr7 = Array(1,5,8,2,4)
    53     var arr8 = arr7.sorted //排序 升序
    54     var arr9 = arr6.sorted //排序 升序 按照字典排序
    55     println(arr8.mkString(",")) //输出: 1,2,4,5,8
    56     println(arr9.mkString(",")) //输出: bc,dbd,sdfs,yeres
    57     
    58     //如果没有变量去接受arr7.sorted
    59     arr7.sorted
    60     println(arr7.mkString(",")) //输出的还是 1,5,8,2,4
    61     //sorted并不会对原数组进行重新排序...必须有一个变量去接收排序的数组.
    62     
    63     /*变长数组*/
    64     var arr10 = ArrayBuffer(1,2,3,4,5)//用ArrayBuffer来声明变长数组
    65     arr10 += 9 //给一个变长数组增加一个元素用"+="
    66     var arr11 = arr7.toBuffer //把一个定长数组arr7变成变长数组用toBuffer
    67     arr11 ++= arr10 //给一个变长数组增加另一个数组中的元素用"++=" 
    68     println(arr11.mkString(","))//输出:1,5,8,2,4,1,2,3,4,5,9
    69     
    70     //scala的IO这块很多都没有自己封装的API,可以用Java的API
    71     var list = new ArrayList[Int](3)
    72     list.add(100)
    73     list.add(101)
    74     list.add(102)
    75     
    76     for(i <- 0 until list.size()){
    77       println(list.get(i))// 循环遍历list数组.
    78     }
    79   }
    80 }
  • 相关阅读:
    关于python3在centOS7下源码安装的配置
    nginx服务器多虚拟主机配置
    完全数
    高精度计算组合数
    算法竞赛入门经典第六章总结
    线段树
    奶牛
    算法竞赛入门经典第五章总结
    优先队列的使用方法
    放魔法石的游戏
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5673195.html
Copyright © 2011-2022 走看看