Interface IndexIntIdMap

  • All Superinterfaces:
    IndexIdMap<Integer>

    public interface IndexIntIdMap
    extends IndexIdMap<Integer>
    A mapping between IntGraph IDs to IndexGraph indices.

    This interface is a specific version of IndexIdMap for IntGraph.

    A regular graph contains vertices and edges which are identified by a fixed int IDs. An IndexGraph view is provided by the Graph.indexGraph() method, which is a graph in which all methods are accessed with indices rather than fixed IDs. This interface maps between the indices and the fixed IDs of the graph vertices or edges.

    Note that the mapping may change during the graph lifetime, as vertices and edges are added and removed from the graph, and a regular graph IDs are fixed, while a index graph indices are always (0,1,2, ...,verticesNum-1) and (0,1,2, ...,edgesNum-1). The mapping object will be updated automatically in such cases.

    The mapping interface is used for both vertices and edges, and we use a unify term element in the documentation to describe both of them. If the mapping was obtained by IntGraph.indexGraphVerticesMap() it will map between vertices IDs and indices, and if it was obtained by IntGraph.indexGraphEdgesMap() it will map between edges IDs and indices.

    Author:
    Barak Ugav
    See Also:
    IndexGraph
    • Method Detail

      • indexToIdInt

        int indexToIdInt​(int index)
        Get the ID of an element by its index.

        Whether this method maps vertices or edges depends if the mapping object was obtained by IntGraph.indexGraphVerticesMap() or IntGraph.indexGraphEdgesMap().

        Parameters:
        index - an index of an element (vertex/edge)
        Returns:
        the ID of the element
        Throws:
        IndexOutOfBoundsException - if index is not in range [, elementsNum) where elementsNum is the number of either vertices or edges, depending on the context
      • indexToIdIfExistInt

        int indexToIdIfExistInt​(int index)
        Get the identifier of an element by its index if it exists, or -1 if it doesn't.

        Whether this method maps vertices or edges depends if the mapping object was obtained by Graph.indexGraphVerticesMap() or Graph.indexGraphEdgesMap().

        Parameters:
        index - the index of an element (vertex/edge)
        Returns:
        the identifier of the element, or -1 if there is not such element
      • idToIndex

        int idToIndex​(int id)
        Get the index of an element by its ID.

        Whether this method maps vertices or edges depends if the mapping object was obtained by IntGraph.indexGraphVerticesMap() or IntGraph.indexGraphEdgesMap().

        Parameters:
        id - an ID of an element (vertex/edge)
        Returns:
        the index of the element
        Throws:
        NoSuchVertexException - if this map maps vertices to ids and id is not a valid identifier of a vertex
        NoSuchEdgeException - if this map maps edges to ids and id is not a valid identifier of an edge
      • idToIndexIfExist

        int idToIndexIfExist​(int id)
        Get the index of an element by its identifier if it exists, or -1 if it doesn't.

        Whether this method maps vertices or edges depends if the mapping object was obtained by Graph.indexGraphVerticesMap() or Graph.indexGraphEdgesMap().

        Parameters:
        id - an identifier of an element (vertex/edge)
        Returns:
        the index of the element, or -1 if there is not such element