sortedmapwrapper.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 40 行

SCALA
40
字号
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2006-2007, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |                                         **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: SortedMapWrapper.scala 13589 2007-12-19 10:38:50Z odersky $package scala.collection.jcl;/** A sorted map that wraps an underlying Java sorted map. * *  @author Sean McDirmid */trait SortedMapWrapper[K,E] extends SortedMap[K,E] with MapWrapper[K,E] {  override def underlying : java.util.SortedMap[K,E];  /** the comparator function of this sorted map is defined in terms    * of the underlying sorted map's comparator.    */  def compare(k0 : K, k1 : K) = underlying.comparator.compare(k0,k1);  override def firstKey = underlying.firstKey.asInstanceOf[K];  override def lastKey = underlying.lastKey.asInstanceOf[K];  override def keySet : SortedSet.Projection[K] = new KeySet;  override protected def Range(from : Option[K], until : Option[K]) = new Range(from,until);  protected class Range(from : Option[K], until : Option[K]) extends super.Range(from,until) with SortedMapWrapper[K,E] {    val underlying = Tuple2(from,until) match {    case Tuple2(None,None) => throw new IllegalArgumentException;    case Tuple2(Some(from),None) => SortedMapWrapper.this.underlying.tailMap(from);      case Tuple2(None,Some(until)) => SortedMapWrapper.this.underlying.headMap(until);    case Tuple2(Some(from),Some(until)) => SortedMapWrapper.this.underlying.subMap(from,until);    }    override def compare(k0 : K, k1 : K) = super[SortedMapWrapper].compare(k0, k1);  }  protected class KeySet extends super[SortedMap].KeySet with SetWrapper[K] with SortedSet.Projection[K] {    val underlying = SortedMapWrapper.this.underlying.keySet;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?