package com.qiandw.kingdee import com.qiandw.SpringTestSuite import org.junit.Test import org.springframework.beans.factory.annotation.Autowired class Test01 extends SpringTestSuite { @Autowired var txDataSrv: TxDataSrv = _ /** * ++ 操作 在列表尾部添加另一个列表 */ @Test def test001(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var data2 = List(("d", 4), ("e", 5), ("f", 6)) var connectList = data1 ++ (data2) println(connectList) } 输出:List((a,1), (b,2), (c,3), (d,4), (e,5), (f,6)) /** * ++: 在列表头部添加另一个列表 */ @Test def test002(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var data2 = List(("d", 4), ("e", 5), ("f", 6)) var connectList = data1.++:(data2) println(connectList) } 输出:List((d,4), (e,5), (f,6), (a,1), (b,2), (c,3)) /** * +:(elem: A): List[A] 在列表的头部添加一个元素 */ @Test def test003(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var element = ("d", 4) var connectList = data1.+:(element) println(connectList) } 输出:List((d,4), (a,1), (b,2), (c,3)) /** * :+(elem: A): List[A] 在列表的尾部添加一个元素 */ @Test def test004(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var element = ("d", 4) var connectList = data1.:+(element) println(connectList) } 输出:List((a,1), (b,2), (c,3), (d,4)) /** * +:(elem: A): List[A] 在列表的头部部添加一个元素 */ @Test def test005(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var element = ("d", 4) var connectList = data1.+:(element) println(connectList) } 輸出:List((d,4), (a,1), (b,2), (c,3)) /** * ::(elem: A): List[A] 在列表的头部部添加一个元素 */ @Test def test006(): Unit = { var data1 = List(("a", 1), ("b", 2), ("c", 3)) var element = ("d", 4) var connectList = data1.::(element) println(connectList) } 輸出:List((d,4), (a,1), (b,2), (c,3)) /** * flattten */ @Test def test007(): Unit = { var data1 = List(List(("a", 1), ("b", 2), ("c", 3)), List(("d", 4), ("e", 5), ("f", 6))) var connectList = data1.flatten println(connectList) } 輸出:List((a,1), (b,2), (c,3), (d,4), (e,5), (f,6)) /** * reduce */ @Test def test008(): Unit = { var data1 = List(List(("a", 1), ("b", 2), ("c", 3)), List(("d", 4), ("e", 5), ("f", 6))) var connectList = data1.flatten var sum = connectList.reduce((a, b) => (a._1 + b._1, a._2 + b._2)) println(sum) } 輸出:(abcdef,21) /** * reduceLeft */ @Test def test009(): Unit = { var data1 = List(List(("a", 1), ("b", 2), ("c", 3)), List(("d", 4), ("e", 5), ("f", 6))) var connectList = data1.flatten var sum = connectList.reduceLeft((a, b) => (a._1 + b._1, a._2 + b._2)) println(sum) } 輸出:(abcdef,21) //這裏説明一下爲什麽測試009和008結果是一樣的,009是雖然從右往左,但是連接符兩邊的順序任然是從左往右,即:e+f = ef ,然後d + ef =def ,依次往左 /** * reduceLeft */ @Test def test010(): Unit = { var data = List("a", "c", "d") var processedList = data.reduceLeft(_ + _) println(processedList) } 輸出:acd /** * match Test */ @Test def test011: Unit = { var a = "a1" a match { case "c" => case "a" => println("ok") case _ => println("null") 輸出:null } }