core :: HashMapValues :: defaultinit
# View of the values of a Map
private class HashMapValues[K, V]
super RemovableCollection[V]
# The original map
var map: HashMap[K, V]
redef fun count(item)
do
var nb = 0
var c = self.map._first_item
while c != null do
if c._value == item then nb += 1
c = c._next_item
end
return nb
end
redef fun first do return self.map._first_item._value
redef fun has(item)
do
var c = self.map._first_item
while c != null do
if c._value == item then return true
c = c._next_item
end
return false
end
redef fun has_only(item)
do
var c = self.map._first_item
while c != null do
if c._value != item then return false
c = c._next_item
end
return true
end
redef fun is_empty do return self.map.is_empty
redef fun length do return self.map.length
redef fun iterator do return new MapValuesIterator[K, V](self.map.iterator)
redef fun clear do self.map.clear
redef fun remove(item)
do
var map = self.map
var c = map._first_item
while c != null do
if c._value == item then
map.remove_node(c._key)
return
end
c = c._next_item
end
end
redef fun remove_all(item)
do
var map = self.map
var c = map._first_item
while c != null do
if c._value == item then
map.remove_node(c._key)
end
c = c._next_item
end
end
end
lib/core/collection/hash_collection.nit:305,1--374,3