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 }
作者:SummerChill 出处:http://www.cnblogs.com/DreamDrive/ 本博客为自己总结亦或在网上发现的技术博文的转载。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |