Scala模拟表查询例子
来源:互联网 发布:扁平插画 知乎 编辑:程序博客网 时间:2024/06/06 18:59
package testtrait PartitionStrategy extends Serializable { /** Returns the partition number for a given edge. */ def getPartition(key: Int): Int def loadMetisFile()}object PartitionStrategy { def fromString(s: String): PartitionStrategy = s match { case "MetisPartition" => MetisPartition case _ => throw new IllegalArgumentException("Invalid PartitionStrategy: " + s) } case object MetisPartition extends PartitionStrategy { val metisMap =new scala.collection.mutable.HashMap[Int,Int] def loadMetisFile() { mockLoadFile() } def mockLoadFile() { try { var id = 1 ; while(id < 10000) { var partition = 5 ; metisMap.put(id, partition) id = id +1 } println("size: " + metisMap.size) } catch { case ex: Exception => { // Handle missing file ex.printStackTrace() } } } override def getPartition(src: Int): Int = { var s = metisMap.get(src) if(!s.isEmpty) return s.getOrElse(0) else throw new IllegalArgumentException("Metis can't find partition!") } }}
package testobject TestPartition2 { def main(args :Array[String]){ try { val partitionStrategy = PartitionStrategy.fromString("MetisPartition") partitionStrategy.loadMetisFile println(partitionStrategy.getPartition(555))// println(MetisPartitioner.getMetisPartition(1)) } catch { case ex: Exception => { ex.printStackTrace() } } }
总结:trait有人说像接口,但我觉得更像抽象类, 此外,参考这个文档:
http://blog.csdn.net/wangxiaotongfan/article/details/48242029
注意几点:
注意:object不能提供构造器参数,也就是说object必须是无参的
阅读全文
0 0
- Scala模拟表查询例子
- Scala简单的例子
- scala的一些例子
- SCALA的例子详解
- scala柯里化封装例子
- Scala求和例子
- scala函数例子
- scala继承例子1
- 例子 一 :多表查询
- 多表查询一例子
- Scala多线程闭包例子
- scala macro annotation 使用 例子
- Scala中的Map使用例子
- scala中akka actor例子
- scala学习-scala读取Hbase表中数据并且做join连接查询
- 用Scala模拟RPC通信
- 一个跨表查询的例子
- SQL语句多表查询例子
- 模态和非模态对话框的创建
- linux设备驱动uevent详解,高通平台battery上报电量实例
- JZOJ5373【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
- mysql如何用一条sql语句实现不存在就插入,存在的话则更新
- 三维重建概述二
- Scala模拟表查询例子
- 关于解析json串(串里有汉字)一些问题解决方案!
- onChanges钩子使用
- 你还在为机密文件如何安全销毁而发愁么?
- 直播知识点
- Codeforces860E Arkady and a Nobody-men -- 单调栈 + 倍增
- HDU 5952 搜索
- STL之Iterator
- ffmpeg一些东西设置