@Override
		public Iterator<Map.Entry<K, V>> iterator() {
			return new Iterator<Map.Entry<K, V>>() {
				Iterator<Map.Entry<K, WeakValue<V>>> hashIterator = hashEntrySet.iterator();
				Entry<K, V> next = null;

				@Override
				public boolean hasNext() {
					while (hashIterator.hasNext()) {
						Map.Entry<K, WeakValue<V>> ent = hashIterator.next();

						WeakValue<V> wv = ent.getValue();
						V v = null;
						if ((wv != null) && ((v = wv.get()) == null)) {
							/* Weak value has been cleared by GC */
							continue;
						}

						next = new Entry<>(ent.getKey(), v);
						return true;
					}
					return false;
				}

				@Override
				public Entry<K, V> next() {
					if ((next == null) && !hasNext()) {
						throw new NoSuchElementException();
					}
					Entry<K, V> e = next;
					next = null;
					return e;
				}

				@Override
				public void remove() {
					hashIterator.remove();
				}

			};
		}
Removes all mappings from this map.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/utils/WeakHashMap2.java