/** * Creates a new <code>TLongIntHashMap</code> instance containing * all of the entries in the map passed in. * * @param map a <tt>TLongIntMap</tt> that will be duplicated. */ public TLongIntHashMap( TLongIntMap map ) { super( map.size() ); if ( map instanceof TLongIntHashMap ) { TLongIntHashMap hashmap = ( TLongIntHashMap ) map; this._loadFactor = hashmap._loadFactor; this.no_entry_key = hashmap.no_entry_key; this.no_entry_value = hashmap.no_entry_value; //noinspection RedundantCast if ( this.no_entry_key != ( long ) 0 ) { Arrays.fill( _set, this.no_entry_key ); } //noinspection RedundantCast if ( this.no_entry_value != ( int ) 0 ) { Arrays.fill( _values, this.no_entry_value ); } setUp( (int) Math.ceil( DEFAULT_CAPACITY / _loadFactor ) ); } putAll( map ); }
/** {@inheritDoc} */ public void putAll( TLongIntMap map ) { ensureCapacity( map.size() ); TLongIntIterator iter = map.iterator(); while ( iter.hasNext() ) { iter.advance(); this.put( iter.key(), iter.value() ); } }
/** {@inheritDoc} */ @Override public boolean equals( Object other ) { if ( ! ( other instanceof TLongIntMap ) ) { return false; } TLongIntMap that = ( TLongIntMap ) other; if ( that.size() != this.size() ) { return false; } int[] values = _values; byte[] states = _states; int this_no_entry_value = getNoEntryValue(); int that_no_entry_value = that.getNoEntryValue(); for ( int i = values.length; i-- > 0; ) { if ( states[i] == FULL ) { long key = _set[i]; int that_value = that.get( key ); int this_value = values[i]; if ( ( this_value != that_value ) && ( this_value != this_no_entry_value ) && ( that_value != that_no_entry_value ) ) { return false; } } } return true; }
public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException { // VERSION in.readByte(); // MAP _map = ( TLongIntMap ) in.readObject(); }
@Test() public void testMapCreateTest() { final long t1 = System.nanoTime(); final TObjectIntMap<String> map1 = new TObjectIntHashMap<>(5000000, 0.8f, -1); final long t2 = System.nanoTime(); final TLongIntMap map2 = new TLongIntHashMap(); final long t3 = System.nanoTime(); System.out.println("Map1:" + ((t2-t1)/1000000d) + " Map2:" + ((t3-t2)/100000d)); }
/** {@inheritDoc} */ @Override public void putAll( TLongIntMap map ) { ensureCapacity( map.size() ); TLongIntIterator iter = map.iterator(); while ( iter.hasNext() ) { iter.advance(); this.put( iter.key(), iter.value() ); } }
/** {@inheritDoc} */ @Override public boolean equals( Object other ) { if ( ! ( other instanceof TLongIntMap ) ) { return false; } TLongIntMap that = ( TLongIntMap ) other; if ( that.size() != this.size() ) { return false; } TIntOffheapArray values = _values; TByteOffheapArray states = _states; int this_no_entry_value = getNoEntryValue(); int that_no_entry_value = that.getNoEntryValue(); for ( int i = capacity(); i-- > 0; ) { if ( states.get( i ) == FULL ) { long key = _set.get( i ); int that_value = that.get( key ); int this_value = values.get( i ); if ( ( this_value != that_value ) && ( this_value != this_no_entry_value ) && ( that_value != that_no_entry_value ) ) { return false; } } } return true; }
@Override public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException { // VERSION in.readByte(); // MAP _map = ( TLongIntMap ) in.readObject(); }
private static TLongIntMap buildTimestampLookupTable(TLongList timestamps) { final TLongIntMap lookupTable = new TLongIntHashMap(timestamps.size(), 4, -1, -1); final TLongIterator iter = timestamps.iterator(); for (int idx = 0; iter.hasNext(); ++idx) lookupTable.put(iter.next(), idx); return lookupTable; }
/** * Build a lookup table that maps timestamps to their block index. * * @param partitions The timestamp partition table. * @return A lookup table, with the keys being any of the timestamps, * mapping to the index in the partitions list. */ private static TLongIntMap buildTimestampLookupTable(List<TLongList> partitions) { final TLongIntMap lookupTable = new TLongIntHashMap(100, 4, -1, -1); final ListIterator<TLongList> iter = partitions.listIterator(); while (iter.hasNext()) { final int partitionIndex = iter.nextIndex(); iter.next().forEach((ts) -> { lookupTable.put(ts, partitionIndex); return true; }); } return lookupTable; }
public BlockMaterialMap(TLongIntMap map) { this.map = map; }
public TLongIntMap getMap() { return container; }
/** * Creates a wrapper that decorates the specified primitive map. * * @param map the <tt>TLongIntMap</tt> to wrap. */ public TLongIntMapDecorator( TLongIntMap map ) { super(); this._map = map; }