1. 程式人生 > >Scala陣列操作

Scala陣列操作

陣列基本操作

(1)

val s=Array("Hello","World")
s(0)="Goodbye"
for(elem <- s)println(elem)

在Scala Worksheet裡面的執行結果:

s: Array[String] = Array(Hello, World)
res0: Unit = ()
Goodbye
World
res1: Unit = ()

注:將字串“Goodbye”賦值給陣列s的第一個元素s(0),然後迴圈遍歷 打印出來
這裡寫圖片描述
(2)
注意要匯入ArrayBuffer的包 : import scala.collection.mutable.ArrayBuffer

import scala.collection.mutable.ArrayBuffer

val b=ArrayBuffer[Int]()
b+=1
b+=(1,2,3,5)
b++=Array(8,13,21)

b.trimEnd(5)
b
b.insert(2,6)
b
b.insert(2,7,8,9)
b
b.remove(2)
b
b.remove(2,3)
b
b.toArray
b

變數b(ArrayBuffer)的可用函式
這裡寫圖片描述

import scala.collection.mutable.ArrayBuffer

b: scala.collection.mutable
.ArrayBuffer[Int] = ArrayBuffer() res0: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1) res1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5) res2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21) res3: Unit = () res4: scala.collection
.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2) res5: Unit = () res6: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 6, 2) res7: Unit = () res8: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 7, 8, 9, 6, 2) res9: Int = 7 res10: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 8, 9, 6, 2) res11: Unit = () res12: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2) res13: Array[Int] = Array(1, 1, 2) res14: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2)

這裡寫圖片描述
(3)

val a=new Array[String](10)
for(i <- 0 until a.length)
  println(i+":"+a(i))
a: Array[String] = Array(null, null, null, null, null, null, null, null, null, null)
0:null
1:null
2:null
3:null
4:null
5:null
6:null
7:null
8:null
9:null
res0: Unit = ()

這裡寫圖片描述
(4)

val c=Array(2,3,5,7,11)
val result=for(elem <- c) yield 2 * elem

for (elem <- c if elem % 2 ==0)yield 2 * elem
c.filter( _% 2 == 0).map(2*_)
c: Array[Int] = Array(2, 3, 5, 7, 11)
result: Array[Int] = Array(4, 6, 10, 14, 22)

res0: Array[Int] = Array(4)
res1: Array[Int] = Array(4)

這裡寫圖片描述
(5)

import scala.collection.mutable.ArrayBuffer

Array(1,7,2,9).sum
ArrayBuffer("YiYou","had","a","little","lamb").max
import scala.collection.mutable.ArrayBuffer

res0: Int = 19
res1: String = little

注:sum求和;max求最大值(ArrayBuffer數組裡面的元素為字串,則比較字串的長度)
這裡寫圖片描述
(6)

import scala.collection.mutable.ArrayBuffer

val d=ArrayBuffer(1,7,2,9)
val bSorted=d.sorted
import scala.collection.mutable.ArrayBuffer

d: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 7, 2, 9)
bSorted: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 7, 9)

注:sorted排序
這裡寫圖片描述
(7)

val e=Array(1,7,2,9)
scala.util.Sorting.quickSort(e)
e.mkString("and")
e.mkString("<",",",">")
e: Array[Int] = Array(1, 7, 2, 9)
res0: Unit = ()
res1: String = 1and2and7and9
res2: String = <1,2,7,9>

這裡寫圖片描述
(8)
矩陣操作

val matrix=Array.ofDim[Double](3,4)
matrix(2)(1)=42

val triangle=new Array[Array[Int]](10)
for(i <- 0 until triangle.length)
  triangle(i)=new Array[Int](i+1)
matrix: Array[Array[Double]] = Array([[email protected], [[email protected], [[email protected])
res0: Unit = ()

triangle: Array[Array[Int]] = Array(null, null, null, null, null, null, null, null, null, null)
res1: Unit = ()

建立一個3行4列的矩陣,原子型別為Double
將值42賦值給第三行第二列的值
這裡寫圖片描述

附件:完整程式碼

執行在:Scala Worksheet

import scala.collection.mutable.ArrayBuffer
val nums=new Array[Int](10)
val a=new Array[String](10)
for(i <- 0 until a.length)
  println(i+":"+a(i))
val s=Array("Hello","World")
s(0)="Goodbye"
for(elem <- s)println(elem)
val b=ArrayBuffer[Int]()
b+=1
b
b+=(1,2,3,5)
b
b++=Array(8,13,21)
b
b.trimEnd(5)
b
b.insert(2,6)
b
b.insert(2,7,8,9)
b
b.remove(2)
b
b.remove(2,3)
b
b.toArray
b
import scala.collection.mutable.ArrayBuffer
val c=Array(2,3,5,7,11)
val result=for(elem <- c) yield 2 * elem
for (elem <- c if elem % 2 ==0)yield 2 * elem
c.filter( _% 2 == 0).map(2*_)
Array(1,7,2,9).sum
ArrayBuffer("YiYou","had","a","little","lamb").max

val d=ArrayBuffer(1,7,2,9)
val bSorted=d.sorted
val e=Array(1,7,2,9)
scala.util.Sorting.quickSort(e)
e.mkString("and")
e.mkString("<",",",">")
val matrix=Array.ofDim[Double](3,4)
matrix(2)(1)=42
val triangle=new Array[Array[Int]](10)
for(i <- 0 until triangle.length)
  triangle(i)=new Array[Int](i+1)
import scala.collection.mutable.ArrayBuffer
nums: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
a: Array[String] = Array(null, null, null, null, null, null, null, null, null, null)
0:null
1:null
2:null
3:null
4:null
5:null
6:null
7:null
8:null
9:null
res0: Unit = ()
s: Array[String] = Array(Hello, World)
res1: Unit = ()
Goodbye
World
res2: Unit = ()
b: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
res3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1)
res4: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1)
res5: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5)
res6: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5)
res7: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21)
res8: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21)
res9: Unit = ()
res10: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2)
res11: Unit = ()
res12: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 6, 2)
res13: Unit = ()
res14: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 7, 8, 9, 6, 2)
res15: Int = 7
res16: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 8, 9, 6, 2)
res17: Unit = ()
res18: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2)
res19: Array[Int] = Array(1, 1, 2)
res20: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2)
import scala.collection.mutable.ArrayBuffer
c: Array[Int] = Array(2, 3, 5, 7, 11)
result: Array[Int] = Array(4, 6, 10, 14, 22)
res21: Array[Int] = Array(4)
res22: Array[Int] = Array(4)
res23: Int = 19
res24: String = little

d: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 7, 2, 9)
bSorted: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 7, 9)
e: Array[Int] = Array(1, 7, 2, 9)
res25: Unit = ()
res26: String = 1and2and7and9
res27: String = <1,2,7,9>
matrix: Array[Array[Double]] = Array([D@5409ae, [D@147a7b5, [D@1537b81)
res28: Unit = ()
triangle: Array[Array[Int]] = Array(null, null, null, null, null, null, null, null, null, null)
res29: Unit = ()

這裡寫圖片描述

相關推薦

scala陣列操作之Array、ArrayBuffer以及遍歷陣列

Array     在Scala中,Array代表的含義與Java中類似,也是長度不可改變的陣列。此外,由於Scala與Java都是執行在JVM中,雙方可以互相呼叫,因此Scala陣列的底層實際上是Java陣列。例如字串陣列在底層就是Java的String[],整數陣

Spark學習(6)——scala陣列操作

Array 在scala中,Array代表的含義與Java類似,也是長度不可變的陣列,此外 由於Java和scala都是執行在JVM中,雙方可以互相呼叫,因此scala的底層 實際上是Java陣列,例如字串的陣列在底層實際上就是Java的 String [] 陣列 整

Scala陣列操作

陣列基本操作 (1) val s=Array("Hello","World") s(0)="Goodbye" for(elem <- s)println(elem) 在Scala Worksheet裡面的執行結果: s: Array[Str

快學scala陣列操作

object Array_opt { def main(args: Array[String]) { // init an array val array = new Array[St

Scala陣列,定長陣列和變長陣列,增強for迴圈,until用法,陣列轉換,陣列常用演算法,陣列其它操作

1. 陣列 1.1. 定長陣列和變長陣列 package cn.toto.scala //可變陣列的長度時需要引入這個包 import scala.collection.mutable.A

java四種拷貝方式及常見的陣列操作方法

一、四種拷貝方式 要確定一個方法是淺拷貝還是深拷貝,必須用引用型別的值,所以要用物件定義陣列,以下四種方法的程式碼中都用物件定義了陣列以確定拷貝型別 1.for迴圈拷貝 class TestArray { private int val = 10; public

2.Scala陣列

package scala object ArrayTest { def main(args: Array[String]): Unit = { //1.定長陣列Array //一種定長陣列定義方式 //複雜物件型別在陣列定義時被初始化為null,數值型被初始化為0

ndarray陣列操作

# In[] 一位陣列訪問 import numpy as np arr = np.arange(10) type(arr) #用切片訪問陣列 b=arr[3:5] #切片獲取3到(5-1) 即3~4 c=arr[:5] #切片獲取0~4 (:代表0) d= arr[1:-1:2]

Tensorflow中 numpy 陣列 操作

  np.linspace(1, 10 , 10) 這個函式的使用是:取1到10之間的數。並且每個顯示10個數字。 引數一: 1  ----- >>> 取值的開始數字 引數二:10 ----- >>> 取值的最大值 引數三:

JavaScript常用陣列操作方法

陣列是用於儲存多個相同型別資料的集合,平時在資料的處理中用到最多,JavaScript 中常用的操作方法 1、concat()concat() 方法用於連線兩個或多個數組。該方法不會改變現有的陣列,僅會返回被連線陣列的一個副本。 var arr1 = [1,2,3]; var arr2 = [4,5

No.18 程式碼練習:列印乘法口訣,交換變數值,判斷閏年,陣列操作

學習不易,需要堅持。 1.實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定, 輸入5,輸出55口訣表,輸入,輸出99的乘法口訣表。 2.使用函式實現兩個數的交換。 3.實現一個函式判斷year是不是潤年。 4.建立一個數組,實現函式init()初始化陣列、實現empt

人工智慧之陣列操作

陣列操作(python中numpy庫) 建立陣列 1.使用單一值建立陣列:zeros()建立全0的陣列,ones()建立全1的陣列,full()建立一個數組,指定元素,indentity()建立一個方陣,主對角線全為1,eye()建立一個m*n的陣列主對角線的元素是1 2.從現有的資料初始化陣列:num

JavaScript常用陣列操作方法,包含ES6方法

一、concat() concat() 方法用於連線兩個或多個數組。該方法不會改變現有的陣列,僅會返回被連線陣列的一個副本。 ? 1

php擴充套件開發-陣列操作

//add_assoc_*系列函式,生成字元索引: add_assoc_null(zval *aval, char *key); add_assoc_bool(zval *aval, char *key, zend_bool bval); add_assoc_long(zval *ava

Scala實戰高手****第6課 :零基礎實戰Scala集合操作及Spark源碼解析

應用程序 元素 如果 掌握 說明 例如 log 方法 線程 本課內容1.Spark中Scala集合操作鑒賞2.Scala集合操作實戰 ----------------------------------------------------------------------

Python + OpenCV 學習筆記(三)>>> Numpy 陣列操作

將影象畫素迭代取反: import cv2 as cv import numpy as np def access_pixels(image): print(image.shape) height = image.shape[0]

js 陣列操作的方法

1.every() every() 方法用於檢測陣列所有元素是否都符合指定條件(通過函式提供)。 every() 方法使用指定函式檢測陣列中的所有元素: 如果陣列中檢測到有一個元素不滿足,則整個表示式返回 false ,且剩餘的元素不會再進行檢測。 如果所

常用php陣列操作

/** * 陣列層級縮排轉換 * @param array $array 源陣列 * @param int $pid * @param int $level * @return array */ function Array2level($array, $pid = 0, $

JAVA陣列操作的方法

陣列元素型別 陣列名字[]; 陣列元素型別[] 陣列名字; 陣列名字 = new 陣列元素型別[陣列元素的個數]; 陣列元素型別 陣列名 = new 陣列元素的型別[陣列元素的個數]; int arr[] = new int[]{1,2,3,4,5}; int arr[] = {1,2,3,

scala常用操作-去除字串最後一個字元

不BB直接上程式碼 /** * @ author: zjf * @ description: * @ date: 2018/9/20 20:55 */ object Test { def main(args: Array[String]): Unit = {