@Override public Set<Object> keySet() { //todo implement //should only return keys where this is active. LinkedHashSet<Object> set = new LinkedHashSet<Object>(super.size()); Iterator<Map.Entry<?,?>> i = super.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<?,?> e = i.next(); Object key = e.getKey(); MapEntry entry = (MapEntry)super.get(key); if ( entry!=null && entry.isActive() ) set.add(key); } return Collections.unmodifiableSet(set); }
@Override public Set<K> keySet() { //todo implement //should only return keys where this is active. LinkedHashSet<K> set = new LinkedHashSet<>(innerMap.size()); Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<K,MapEntry<K,V>> e = i.next(); K key = e.getKey(); MapEntry<K,V> entry = innerMap.get(key); if ( entry!=null && entry.isActive() ) set.add(key); } return Collections.unmodifiableSet(set); }
@Override public Set<K> keySet() { //todo implement //should only return keys where this is active. LinkedHashSet<K> set = new LinkedHashSet<>(innerMap.size()); for (Entry<K, MapEntry<K, V>> e : innerMap.entrySet()) { K key = e.getKey(); MapEntry<K,V> entry = innerMap.get(key); if ( entry!=null && entry.isActive() ) set.add(key); } return Collections.unmodifiableSet(set); }
@Override public int size() { //todo, implement a counter variable instead //only count active members in this node int counter = 0; Iterator<Map.Entry<?,?>> it = super.entrySet().iterator(); while (it!=null && it.hasNext() ) { Map.Entry<?,?> e = it.next(); if ( e != null ) { MapEntry entry = (MapEntry) super.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue() != null) counter++; } } return counter; }
@Override public boolean containsValue(Object value) { if ( value == null ) { return super.containsValue(value); } else { Iterator<Map.Entry<?,?>> i = super.entrySet().iterator(); while (i.hasNext()) { Map.Entry<?,?> e = i.next(); MapEntry entry = (MapEntry) super.get(e.getKey()); if (entry!=null && entry.isActive() && value.equals(entry.getValue())) return true; }//while return false; }//end if }
@Override public Set<Map.Entry<K,V>> entrySet() { LinkedHashSet<Map.Entry<K,V>> set = new LinkedHashSet<>(innerMap.size()); Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<?,?> e = i.next(); Object key = e.getKey(); MapEntry<K,V> entry = innerMap.get(key); if ( entry != null && entry.isActive() ) { set.add(entry); } } return Collections.unmodifiableSet(set); }
@Override public int size() { //todo, implement a counter variable instead //only count active members in this node int counter = 0; Iterator<Map.Entry<K,MapEntry<K,V>>> it = innerMap.entrySet().iterator(); while (it!=null && it.hasNext() ) { Map.Entry<?,?> e = it.next(); if ( e != null ) { MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue() != null) counter++; } } return counter; }
@Override public int size() { //todo, implement a counter variable instead //only count active members in this node int counter = 0; Iterator<Map.Entry<K,MapEntry<K,V>>> it = innerMap.entrySet().iterator(); while (it!=null && it.hasNext() ) { Map.Entry<?,?> e = it.next(); if ( e != null ) { MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue() != null) counter++; } } return counter; }
@Override public Collection<V> values() { List<V> values = new ArrayList<>(); for (Entry<K, MapEntry<K, V>> e : innerMap.entrySet()) { MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue()!=null) values.add(entry.getValue()); } return Collections.unmodifiableCollection(values); }
@Override public Set<Map.Entry<K,V>> entrySet() { LinkedHashSet<Map.Entry<K,V>> set = new LinkedHashSet<>(innerMap.size()); for (Entry<K, MapEntry<K, V>> e : innerMap.entrySet()) { Object key = e.getKey(); MapEntry<K,V> entry = innerMap.get(key); if ( entry != null && entry.isActive() ) { set.add(entry); } } return Collections.unmodifiableSet(set); }
@Override public boolean containsValue(Object value) { Objects.requireNonNull(value); for (Entry<K, MapEntry<K, V>> e : innerMap.entrySet()) { MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && value.equals(entry.getValue())) return true; } return false; }
@Override public Set<MapEntry> entrySet() { LinkedHashSet<MapEntry> set = new LinkedHashSet<MapEntry>(super.size()); Iterator<Map.Entry<?,?>> i = super.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<?,?> e = i.next(); Object key = e.getKey(); MapEntry entry = (MapEntry)super.get(key); if ( entry != null && entry.isActive() ) { set.add(new MapEntry(key, entry.getValue())); } } return Collections.unmodifiableSet(set); }
@Override public boolean containsValue(Object value) { if (value == null) { throw new NullPointerException(); } Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator(); while (i.hasNext()) { Map.Entry<K,MapEntry<K,V>> e = i.next(); MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && value.equals(entry.getValue())) return true; } return false; }
@Override public Collection<V> values() { ArrayList<V> values = new ArrayList<>(); Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<K,MapEntry<K,V>> e = i.next(); MapEntry<K,V> entry = innerMap.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue()!=null) values.add(entry.getValue()); } return Collections.unmodifiableCollection(values); }
@Override public Collection<Object> values() { ArrayList<Object> values = new ArrayList<Object>(); Iterator<Map.Entry<?,?>> i = super.entrySet().iterator(); while ( i.hasNext() ) { Map.Entry<?,?> e = i.next(); MapEntry entry = (MapEntry)super.get(e.getKey()); if (entry!=null && entry.isActive() && entry.getValue()!=null) values.add(entry.getValue()); } return Collections.unmodifiableCollection(values); }