11.7.3 OrderedSet

append (object: T) : OrderedSet(T)

包含self的所有元素、后面跟object的集合。

post: result->size() = self->size() + 1
post: result->at(result->size() ) = object
post: Sequence{1..self->size() }->forAll(index : Integer | result->at(index) = self ->at(index))

prepend(object : T) : OrderedSet(T)

object开头,后面跟self的所有元素的集合。

post: result->size = self->size() + 1
post: result->at(1) = object
post: Sequence{1..self->size()}->forAll(index : Integer | self->at(index) = result->at(index + 1))

insertAt(index : Integer, object : T) : OrderedSet(T)

包含self的所有元素,并将object在指定的index位置插入后的集合。

post: result->size = self->size() + 1
post: result->at(index) = object
post: Sequence{1..(index - 1)}->forAll(i : Integer | self->at(i) = result->at(i))
post: Sequence{(index + 1)..self->size()}->forAll(i : Integer | self->at(i) = result->at(i + 1))

subOrderedSet(lower : Integer, upper : Integer) : OrderedSet(T)

selflower起始,到upper结束的所有元素集合。

pre : 1 <= lower
pre : lower <= upper
pre : upper <= self->size()
post: result->size() = upper -lower + 1
post: Sequence{lower..upper}->forAll( index | result->at(index - lower + 1) = self->at(index))

at(i : Integer) : T

self的第i个元素。

pre : i >= 1 and i <= self->size()

indexOf(obj : T) : Integer

objself中索引。

pre : self->includes(obj)
post : self->at(i) = obj

first() : T

self的第一个元素。

post: result = self->at(1)

last() : T

self的最后一个元素。

post: result = self->at(self->size() )

reverse() : OrderedSet(T)

self逆序排列后的集合。

post: result->size() = self->size()

sum() : T

重定义Collection的操作以去掉要求+操作满足结合律和/或交换律的需求,因为计算顺序已经由集合的元素次序和迭代操作所定义。

selectByKind(type : Classifier) : OrderedSet(T)

返回self中所有类型是type或其子类型的元素集合。返回集合的元素类型T是给定的type

selectByType(type : Classifier) : OrderedSet(T)

返回self中所有类型是type而非其子类的元素集合。返回集合的元素类型T是给定的type

asSet() : Set(T)

重定义Collection的操作,从self获得一个包含self所有元素的Set,次序未定义。

asOrderedSet() : OrderedSet(T)

重定义Collection的操作。从self获得一个与自身相同的OrderedSet。

post: result = self
post: Sequence{1..self.size()}->forAll(i | result->at(i) = self->at(i))

asSequence() : Sequence(T)

重定义Collection的操作。从self获得一个包含所有元素且次序相同的Sequence。

post: Sequence{1..self.size()}->forAll(i | result->at(i) = self->at(i))

asBag() : Bag(T)

重定义Collection的操作。从self获得一个包含所有元素的Bag,次序未定。

results matching ""

    No results matching ""