@Override public V get(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); for(Entry<K,V> entry : entries) if(entry.getKey().equals(key)) return entry.getValue(); return null; }
@Override public V get(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); for(Entry<K,V> entry : entries) if(entry.getKey().equals(key)) return entry.getValue(); return null; }
@Override public boolean containsKey(final Object key) { return keyIndexIn(getEntries(key.hashCode()), key) != -1; }
@Override public boolean containsKey(final Object key) { return keyIndexIn(getEntries(key.hashCode()), key) != -1; }
public HashPMap<K,V> minus(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int i = keyIndexIn(entries, key); if(i==-1) // key not in this return this; entries = entries.minus(i); if(entries.size()==0) // get rid of the entire hash entry return new HashPMap<K,V>(intMap.minus(key.hashCode()), size-1); // otherwise replace hash entry with new smaller one: return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-1); }
public HashPMap<K,V> minus(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int i = keyIndexIn(entries, key); if(i==-1) // key not in this return this; entries = entries.minus(i); if(entries.size()==0) // get rid of the entire hash entry return new HashPMap<K,V>(intMap.minus(key.hashCode()), size-1); // otherwise replace hash entry with new smaller one: return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-1); }
public HashPMap<K,V> plus(final K key, final V value) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int size0 = entries.size(), i = keyIndexIn(entries, key); if(i!=-1) entries = entries.minus(i); entries = entries.plus(new SimpleImmutableEntry<K,V>(key, value)); return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-size0+entries.size()); }
public HashPMap<K,V> plus(final K key, final V value) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int size0 = entries.size(), i = keyIndexIn(entries, key); if(i!=-1) entries = entries.minus(i); entries = entries.plus(new SimpleImmutableEntry<K,V>(key, value)); return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-size0+entries.size()); }
@Override public V get(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); for(Entry<K,V> entry : entries) if(entry.getKey().equals(key)) return entry.getValue(); return null; }
@Override public V get(final Object key) { PSequence<Entry<K, V>> entries = getEntries(key.hashCode()); for (Entry<K, V> entry : entries) if (entry.getKey().equals(key)) return entry.getValue(); return null; }
@Override public boolean containsKey(final Object key) { return keyIndexIn(getEntries(key.hashCode()), key) != -1; }
@Override public boolean containsKey(final Object key) { return keyIndexIn(getEntries(key.hashCode()), key) != -1; }
public HashPMap<K, V> minus(final Object key) { PSequence<Entry<K, V>> entries = getEntries(key.hashCode()); int i = keyIndexIn(entries, key); if (i == -1) // key not in this return this; entries = entries.minus(i); if (entries.size() == 0) // get rid of the entire hash entry return new HashPMap<K, V>(intMap.minus(key.hashCode()), size - 1); // otherwise replace hash entry with new smaller one: return new HashPMap<K, V>(intMap.plus(key.hashCode(), entries), size - 1); }
public HashPMap<K,V> plus(final K key, final V value) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int size0 = entries.size(), i = keyIndexIn(entries, key); if(i!=-1) entries = entries.minus(i); entries = entries.plus(new SimpleImmutableEntry<K,V>(key, value)); return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-size0+entries.size()); }
public HashPMap<K,V> minus(final Object key) { PSequence<Entry<K,V>> entries = getEntries(key.hashCode()); int i = keyIndexIn(entries, key); if(i==-1) // key not in this return this; entries = entries.minus(i); if(entries.size()==0) // get rid of the entire hash entry return new HashPMap<K,V>(intMap.minus(key.hashCode()), size-1); // otherwise replace hash entry with new smaller one: return new HashPMap<K,V>(intMap.plus(key.hashCode(), entries), size-1); }
public HashPMap<K, V> plus(final K key, final V value) { PSequence<Entry<K, V>> entries = getEntries(key.hashCode()); int size0 = entries.size(), i = keyIndexIn(entries, key); if (i != -1) entries = entries.minus(i); entries = entries.plus(new org.pcollections.SimpleImmutableEntry<K, V>(key, value)); return new HashPMap<K, V>(intMap.plus(key.hashCode(), entries), size - size0 + entries.size()); }