Items can be added to these collections.

Introduced properties

abstract fun add(item: E)

core :: SimpleCollection :: add

Add item to this collection.
fun add_all(coll: Collection[E])

core :: SimpleCollection :: add_all

Add each item of coll.
fun as_random: Queue[E]

core :: SimpleCollection :: as_random

Return a random proxy queue where result.take is random.

Redefined properties

redef type SELF: SimpleCollection[E]

core $ SimpleCollection :: SELF

Type of this instance, automatically specialized in every class
redef fun accept_json_serializer(v: JsonSerializer)

json :: serialization_write $ SimpleCollection :: accept_json_serializer

Refinable service to customize the serialization of this class to JSON
redef fun accept_msgpack_serializer(v: MsgPackSerializer)

msgpack :: serialization_write $ SimpleCollection :: accept_msgpack_serializer

Hook to customize the serialization of this class to MessagePack
redef init from_deserializer(v: Deserializer)

json :: serialization_read $ SimpleCollection :: from_deserializer

Create an instance of this class from the deserializer
redef init from_deserializer(v: Deserializer)

msgpack :: serialization_read $ SimpleCollection :: from_deserializer

Create an instance of this class from the deserializer
redef fun msgpack_extra_array_items: Int

msgpack :: serialization_write $ SimpleCollection :: msgpack_extra_array_items

Hook to request a larger than usual metadata array

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type CONCURRENT: ConcurrentCollection[E]

core :: Collection :: CONCURRENT

Type of the concurrent variant of this collection
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
protected fun accept_json_serializer(v: JsonSerializer)

serialization :: Serializable :: accept_json_serializer

Refinable service to customize the serialization of this class to JSON
protected fun accept_msgpack_attribute_counter(v: AttributeCounter)

serialization :: Serializable :: accept_msgpack_attribute_counter

Hook to customize the behavior of the AttributeCounter
protected fun accept_msgpack_serializer(v: MsgPackSerializer)

serialization :: Serializable :: accept_msgpack_serializer

Hook to customize the serialization of this class to MessagePack
abstract fun add(item: E)

core :: SimpleCollection :: add

Add item to this collection.
fun add_all(coll: Collection[E])

core :: SimpleCollection :: add_all

Add each item of coll.
protected fun add_to_bundle(bundle: NativeBundle, key: JavaString)

serialization :: Serializable :: add_to_bundle

Called by []= to dynamically choose the appropriate method according
fun as_random: Queue[E]

core :: SimpleCollection :: as_random

Return a random proxy queue where result.take is random.
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
abstract fun clear

core :: RemovableCollection :: clear

Remove all items
fun combinations(r: Int): Collection[SequenceRead[E]]

core :: Collection :: combinations

All r-length combinations on self (in same order) without repeated elements.
fun combinations_with_replacement(r: Int): Collection[SequenceRead[E]]

core :: Collection :: combinations_with_replacement

All r-length combination on self (in same order) with repeated elements.
fun core_serialize_to(serializer: Serializer)

serialization :: Serializable :: core_serialize_to

Actual serialization of self to serializer
fun count(item: nullable Object): Int

core :: Collection :: count

How many occurrences of item are in the collection?
fun first: E

core :: Collection :: first

Return the first item of the collection
init from_deserializer(deserializer: Deserializer)

serialization :: Serializable :: from_deserializer

Create an instance of this class from the deserializer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun has(item: nullable Object): Bool

core :: Collection :: has

Is item in the collection ?
fun has_all(other: Collection[nullable Object]): Bool

core :: Collection :: has_all

Does the collection contain at least each element of other?
fun has_any(other: Collection[nullable Object]): Bool

core :: Collection :: has_any

Does the collection contain at least one element of other?
fun has_exactly(other: Collection[nullable Object]): Bool

core :: Collection :: has_exactly

Does the collection contain exactly all the elements of other?
fun has_only(item: nullable Object): Bool

core :: Collection :: has_only

Is the collection contain only item?
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
fun is_empty: Bool

core :: Collection :: is_empty

Is there no item in the collection?
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
abstract fun iterator: Iterator[E]

core :: Collection :: iterator

Get a new iterator on the collection.
fun join(separator: nullable Text, last_separator: nullable Text): String

core :: Collection :: join

Concatenate and separate each elements with separator.
fun length: Int

core :: Collection :: length

Number of items in the collection.
protected fun msgpack_extra_array_items: Int

serialization :: Serializable :: msgpack_extra_array_items

Hook to request a larger than usual metadata array
fun not_empty: Bool

core :: Collection :: not_empty

Alias for not is_empty.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun permutations(r: Int): Collection[SequenceRead[E]]

core :: Collection :: permutations

All r-length permutations on self (all possible ordering) without repeated elements.
fun plain_to_s: String

core :: Collection :: plain_to_s

Concatenate elements without separators
fun product(r: Int): Collection[SequenceRead[E]]

core :: Collection :: product

Cartesian product, over r times self.
fun rand: E

core :: Collection :: rand

Return a random element form the collection
abstract fun remove(item: nullable Object)

core :: RemovableCollection :: remove

Remove an occurrence of item
fun remove_all(item: nullable Object)

core :: RemovableCollection :: remove_all

Remove all occurrences of item
fun sample(length: Int): Array[E]

core :: Collection :: sample

Return a new array made of (at most) length elements randomly chosen.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun serialize_msgpack(plain: nullable Bool): Bytes

serialization :: Serializable :: serialize_msgpack

Serialize self to MessagePack bytes
fun serialize_to(serializer: Serializer)

serialization :: Serializable :: serialize_to

Serialize self to serializer
fun serialize_to_json(plain: nullable Bool, pretty: nullable Bool): String

serialization :: Serializable :: serialize_to_json

Serialize self to JSON
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
fun to_a: Array[E]

core :: Collection :: to_a

Build a new array from a collection
abstract fun to_concurrent: CONCURRENT

core :: Collection :: to_concurrent

Wraps self in a thread-safe collection
fun to_counter: Counter[E]

core :: Collection :: to_counter

Create and fill up a counter with the elements of `self.
fun to_curlslist: CURLSList

core :: Collection :: to_curlslist

Convert Collection[String] to CURLSList
fun to_json: String

serialization :: Serializable :: to_json

Serialize self to plain JSON
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_pretty_json: String

serialization :: Serializable :: to_pretty_json

Serialize self to plain pretty JSON
fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun to_shuffle: Array[E]

core :: Collection :: to_shuffle

Return a new array made of elements in a random order.
package_diagram core::SimpleCollection SimpleCollection serialization::Serializable Serializable core::SimpleCollection->serialization::Serializable core::RemovableCollection RemovableCollection core::SimpleCollection->core::RemovableCollection core::Object Object serialization::Serializable->core::Object core::Collection Collection core::RemovableCollection->core::Collection ...core::Object ... ...core::Object->core::Object ...core::Collection ... ...core::Collection->core::Collection core::Queue Queue core::Queue->core::SimpleCollection core::Set Set core::Set->core::SimpleCollection core::Sequence Sequence core::Sequence->core::SimpleCollection core::DisjointSet DisjointSet core::DisjointSet->core::SimpleCollection geometry::BoxedCollection BoxedCollection geometry::BoxedCollection->core::SimpleCollection neo4j::NeoNodeCollection NeoNodeCollection neo4j::NeoNodeCollection->core::SimpleCollection core::MinHeap MinHeap core::MinHeap->core::Queue core::MinHeap... ... core::MinHeap...->core::MinHeap core::ArraySet ArraySet core::ArraySet->core::Set core::HashSet HashSet core::HashSet->core::Set dummy_array::DummyArray DummyArray dummy_array::DummyArray->core::Set core::ArraySet... ... core::ArraySet...->core::ArraySet core::HashSet... ... core::HashSet...->core::HashSet dummy_array::DummyArray... ... dummy_array::DummyArray...->dummy_array::DummyArray core::AbstractArray AbstractArray core::AbstractArray->core::Sequence core::List List core::List->core::Sequence core::CircularArray CircularArray core::CircularArray->core::Sequence pthreads::ConcurrentSequence ConcurrentSequence pthreads::ConcurrentSequence->core::Sequence more_collections::UnrolledList UnrolledList more_collections::UnrolledList->core::Sequence core::AbstractArray... ... core::AbstractArray...->core::AbstractArray core::List... ... core::List...->core::List core::CircularArray... ... core::CircularArray...->core::CircularArray pthreads::ConcurrentSequence... ... pthreads::ConcurrentSequence...->pthreads::ConcurrentSequence more_collections::UnrolledList... ... more_collections::UnrolledList...->more_collections::UnrolledList geometry::BoxedArray BoxedArray geometry::BoxedArray->geometry::BoxedCollection geometry::QuadTree QuadTree geometry::QuadTree->geometry::BoxedCollection geometry::BoxedArray... ... geometry::BoxedArray...->geometry::BoxedArray geometry::QuadTree... ... geometry::QuadTree...->geometry::QuadTree neo4j::SequentialNodeCollection SequentialNodeCollection neo4j::SequentialNodeCollection->neo4j::NeoNodeCollection neo4j::SequentialNodeCollection... ... neo4j::SequentialNodeCollection...->neo4j::SequentialNodeCollection

Ancestors

interface Collection[E: nullable Object]

core :: Collection

The root of the collection hierarchy.
interface Object

core :: Object

The root of the class hierarchy.

Parents

interface RemovableCollection[E: nullable Object]

core :: RemovableCollection

Items can be removed from this collection
interface Serializable

serialization :: Serializable

Instances of this class can be passed to Serializer::serialize

Children

interface BoxedCollection[E: Boxed[Numeric]]

geometry :: BoxedCollection

Base for all data structures containing multiple Boxed Objects
class DisjointSet[E: nullable Object]

core :: DisjointSet

Data structure to keep track of elements partitioned into disjoint subsets
abstract class NeoNodeCollection

neo4j :: NeoNodeCollection

All the nodes in a NeoGraph.
interface Queue[E: nullable Object]

core :: Queue

Queues are collection that controls how elements are retrieved.
interface Sequence[E: nullable Object]

core :: Sequence

Sequence are indexed collection.
interface Set[E: nullable Object]

core :: Set

Abstract sets.

Descendants

abstract class AbstractArray[E: nullable Object]

core :: AbstractArray

Resizable one dimension array of objects.
class Array[E: nullable Object]

core :: Array

Resizable one dimension array of objects.
class ArrayCmp[E: nullable Comparable]

core :: ArrayCmp

Comparable array for comparable elements.
class ArraySet[E: nullable Object]

core :: ArraySet

A set implemented with an Array.
class BlockingQueue[E: nullable Object]

pthreads :: BlockingQueue

A Blocking queue implemented from a ConcurrentList
class BoxedArray[E: Boxed[Numeric]]

geometry :: BoxedArray

BoxedCollection implemented by an array
class Bytes

core :: Bytes

A buffer containing Byte-manipulation facilities
class CircularArray[E: nullable Object]

core :: CircularArray

Efficient data structure to access both end of the sequence.
class ConcurrentArray[E: nullable Object]

pthreads :: ConcurrentArray

A concurrent variant to the standard Array
class ConcurrentList[E: nullable Object]

pthreads :: ConcurrentList

A concurrent variant to the standard List
abstract class ConcurrentSequence[E: nullable Object]

pthreads :: ConcurrentSequence

A concurrent variant to the standard Sequence
class DQuadTree[E: Boxed[Numeric]]

geometry :: DQuadTree

A dynamic implementation of the quadtree data structure
class DummyArray

dummy_array :: DummyArray

A Set that contains only integers.
class HashSet[E: nullable Object]

core :: HashSet

A Set implemented with a hash table.
class Interfaces

nitcorn :: Interfaces

A list of interfaces with dynamic port listeners
class JsonArray

json :: JsonArray

A JSON array.
class List[E: nullable Object]

core :: List

Double linked lists.
class LiveGroup[E: LiveObject]

scene2d :: LiveGroup

Organizational class to manage groups of sprites and other live objects.
class Mailbox[E: nullable Object]

actors :: Mailbox

A Blocking queue implemented from a ConcurrentList
class MinHeap[E: Object]

core :: MinHeap

A min-heap implemented over an array
class MongoPipeline

mongodb :: MongoPipeline

Mongo pipelines are arrays of aggregation stages
abstract class QuadTree[E: Boxed[Numeric]]

geometry :: QuadTree

Abstract QuadTree implementing the basic functions and data
class ReverseBlockingQueue[E: nullable Object]

pthreads :: ReverseBlockingQueue

A collection which is_empty method blocks until it's empty
class SQuadTree[E: Boxed[Numeric]]

geometry :: SQuadTree

Static implementation of the quadtree structure
class SequentialNodeCollection

neo4j :: SequentialNodeCollection

A Neo4j node collection using a sequential identification scheme.
class SpriteSet

gamnit :: SpriteSet

Set of sprites sorting them into different SpriteContext
class TextureSet

gamnit :: TextureSet

Group of Texture
class UnrolledList[E: nullable Object]

more_collections :: UnrolledList

An unrolled linked list
class VirtualHosts

nitcorn :: VirtualHosts

A list of virtual hosts with dynamic port listeners

Class definitions

core $ SimpleCollection
# Items can be added to these collections.
interface SimpleCollection[E]
	super RemovableCollection[E]

	# Add `item` to this collection.
	#
	#     var a = [1,2]
	#     a.add 3
	#     assert a.has(3)  == true
	#     assert a.has(10) == false
	#
	# Ensure col.has(item)
	fun add(item: E) is abstract

	# Add each item of `coll`.
	#
	#     var a = [1,2]
	#     a.add_all([3..5])
	#     assert a.has(4)  == true
	#     assert a.has(10) == false
	fun add_all(coll: Collection[E]) do for i in coll do add(i)
end
lib/core/collection/abstract_collection.nit:423,1--444,3

core :: queue $ SimpleCollection
redef class SimpleCollection[E]
	# Return a random proxy queue where `result.take` is random.
	#
	# The point of such a proxy is to provide a randomized removal.
	#
	# ~~~
	# var a = [1,2,3]
	# var b = a.as_random.take
	# assert b == 1 or b == 2 or b == 3 # Eh, it is random!
	# ~~~
	fun as_random: Queue[E] do return new RandQueue[E](self)
end
lib/core/queue.nit:164,1--175,3

serialization :: serialization_core $ SimpleCollection
redef class SimpleCollection[E] super Serializable end
lib/serialization/serialization_core.nit:265,1--54

serialization :: inspect $ SimpleCollection
redef class SimpleCollection[E]
	redef fun accept_inspect_serializer_core(v)
	do
		v.stream.write " "
		serialize_as_inspect v
	end
end
lib/serialization/inspect.nit:260,1--266,3

json :: serialization_read $ SimpleCollection
redef class SimpleCollection[E]
	redef init from_deserializer(v)
	do
		super
		if v isa JsonDeserializer then
			v.notify_of_creation self
			init

			var open_array: nullable SequenceRead[nullable Object] = v.opened_array
			if open_array == null then
				# With metadata
				var arr = v.path.last.get_or_null("__items")
				if not arr isa SequenceRead[nullable Object] then
					# If there is nothing, we consider that it is an empty collection.
					if arr != null then v.errors.add new Error("Deserialization Error: invalid format in {self.class_name}")
					return
				end
				open_array = arr
			end

			# Name of the dynamic name of E
			var items_type_name = (new GetName[E]).to_s

			# Fill array
			for o in open_array do
				var obj = v.convert_object(o, items_type_name)
				if obj isa E then
					add obj
				else v.errors.add new AttributeTypeError(self, "items", obj, items_type_name)
			end
		end
	end
end
lib/json/serialization_read.nit:385,1--417,3

msgpack :: serialization_write $ SimpleCollection
redef class SimpleCollection[E]
	redef fun accept_msgpack_serializer(v)
	do
		if not v.plain_msgpack then
			# Add metadata and other attributes
			super
		end

		# Header
		v.stream.write_msgpack_array length

		# Items
		for e in self do
			if not v.try_to_serialize(e) then
				assert e != null # null would have been serialized
				v.warn "element of type {e.class_name} is not serializable."
				v.stream.write_msgpack_null
			end
		end
	end

	redef fun msgpack_extra_array_items do return 1
end
lib/msgpack/serialization_write.nit:297,1--319,3

msgpack :: serialization_read $ SimpleCollection
redef class SimpleCollection[E]
	redef init from_deserializer(v)
	do
		super
		if v isa MsgPackDeserializer then
			v.notify_of_creation self
			init

			var open_array = v.path_arrays.last
			var msgpack_items = null
			if open_array != null then msgpack_items = open_array.last

			if not msgpack_items isa Array[nullable Serializable] then
				v.errors.add new Error("Deserialization Error: no items in source of `{class_name}`")
				return
			end

			# Name of the dynamic name of E
			var items_type_name = (new GetName[E]).to_s

			# Fill array
			for o in msgpack_items do
				var obj = v.convert_object(o, items_type_name)
				if obj isa E then
					add obj
				else v.errors.add new AttributeTypeError(self, "items", obj, items_type_name)
			end
		end
	end
end
lib/msgpack/serialization_read.nit:336,1--365,3