Scala 应该每个大数据从业者都要会一点的语言,光会Java或许不行。对我来说,学习一门语言最好的方法就是用这门语言,去A几道题。
题目链接: https://leetcode-cn.com/problems/two-sum/
import scala.collection.mutable
object Main {
def twoSum(nums: Array[Int], target: Int): Array[Int] = {
val a: mutable.HashMap[Int, Int] = mutable.HashMap()
for (i <- nums.indices) {
val x = target - nums(i)
if (a.contains(x)) {
return Array(a(x), i)
}
a(nums(i)) = i
}
Array(-1, -1)
}
def main(args: Array[String]): Unit = {
assert(twoSum(Array(2, 7, 11, 15), 9).sameElements(Array(0, 1)))
}
}
从这个简单的题目中可以总结出以下今后会用的东西。
个人感觉 Scala应该是一门表现能力很丰富的语言,我个人风格还是偏向于把它写得像Java一点。
- main 方法中 assert可以用来测试
- 库多,有比较两个数组是否相等的 sameElements方法
- 定义数组用 Array(a1, a2, a3) 不需要 new
- HashMap有很多种写法,我这种是先 import scala.collection.mutable 再用
- indices可以获取数组的下标集合
- 取集合元素的方法从Java的[]变成了()
- 最后一行的return可以省略