Changeset 2651

Show
Ignore:
Timestamp:
11/10/08 10:48:37 (2 months ago)
Author:
leo
Message:

[ADD] bit vector
[TODO] lattice implementation

Location:
XerialJ/trunk/xerial-core/src
Files:
7 added
1 modified

Legend:

Unmodified
Added
Removed
  • XerialJ/trunk/xerial-core/src/main/java/org/xerial/util/graph/AdjacencyList.java

    r2584 r2651  
    2929import java.util.HashMap; 
    3030import java.util.List; 
     31import java.util.Map; 
    3132import java.util.NoSuchElementException; 
    3233import java.util.Set; 
     
    110111    public Collection<NodeLabel> getNodeLabelSet() 
    111112    { 
    112         return _nodeTable.values(); 
     113        return _nodeTable.getNodeLabelSet(); 
    113114    } 
    114115 
    115116    public Collection<Integer> getNodeIDSet() 
    116117    { 
    117         return _nodeTable.keySet(); 
     118        return _nodeTable.getNodeIDSet(); 
    118119    } 
    119120 
     
    260261    public String toString() 
    261262    { 
    262         String nodeData = CollectionUtil.displayMap(_nodeTable, ":", ", "); 
     263        String nodeData = CollectionUtil.displayMap(_nodeTable.getNodeTable(), ":", ", "); 
    263264 
    264265        ArrayList<String> edgeData = new ArrayList<String>(); 
     
    270271        return "node: " + nodeData + "\n" + StringUtil.join(edgeData, "\n"); 
    271272    } 
     273     
    272274 
    273275} 
    274276 
    275 class NodeTable<NodeType> extends TreeMap<Integer, NodeType> 
     277class NodeTable<NodeType>  
    276278{ 
    277279    private static final long serialVersionUID = 1L; 
     
    279281    private int _numNode = 0; 
    280282 
     283    private TreeMap<Integer, NodeType> _nodeTable       = new TreeMap<Integer, NodeType>(); 
    281284    private HashMap<NodeType, Integer> _nodeIDIndex = new HashMap<NodeType, Integer>(); 
     285 
     286    public NodeType get(int nodeID) 
     287    { 
     288        return _nodeTable.get(nodeID); 
     289    } 
     290     
     291    public Set<NodeType> getNodeLabelSet() 
     292    { 
     293        return _nodeIDIndex.keySet(); 
     294    } 
     295 
     296    public Set<Integer> getNodeIDSet() 
     297    { 
     298        return _nodeTable.keySet(); 
     299    } 
     300     
     301    public boolean containsValue(NodeType value) 
     302    { 
     303        return _nodeIDIndex.containsKey(value); 
     304    } 
     305     
     306    public boolean containsKey(Integer nodeID) 
     307    { 
     308        return _nodeTable.containsKey(nodeID); 
     309    } 
     310     
     311    public Map<Integer, NodeType> getNodeTable() 
     312    { 
     313        return _nodeTable; 
     314    } 
     315     
     316    public int size() 
     317    { 
     318        return _nodeTable.size(); 
     319    } 
    282320 
    283321    public int getNodeID(NodeType node) 
     
    289327    public int add(int nodeID, NodeType node) 
    290328    { 
    291         super.put(nodeID, node); 
     329        _nodeTable.put(nodeID, node); 
    292330        if (nodeID > _numNode) 
    293331            _numNode = nodeID; 
     
    300338    { 
    301339        int newNodeID = _numNode + 1; 
    302         super.put(newNodeID, node); 
     340        _nodeTable.put(newNodeID, node); 
    303341        _nodeIDIndex.put(node, newNodeID); 
    304342        ++_numNode; 
     
    309347    { 
    310348        _numNode = 0; 
    311         super.clear(); 
     349        _nodeTable.clear(); 
    312350        _nodeIDIndex.clear(); 
    313351    }