java.util.IdentityHashMap.entrySet()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(146)

本文整理了Java中java.util.IdentityHashMap.entrySet()方法的一些代码示例,展示了IdentityHashMap.entrySet()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。IdentityHashMap.entrySet()方法的具体详情如下:
包路径:java.util.IdentityHashMap
类名称:IdentityHashMap
方法名:entrySet

IdentityHashMap.entrySet介绍

[英]Returns a Set view of the mappings contained in this map. Each element in the returned set is a reference-equality-based Map.Entry. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress, the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll and clear methods. It does not support the add or addAll methods.

Like the backing map, the Map.Entry objects in the set returned by this method define key and value equality as reference-equality rather than object-equality. This affects the behavior of the equals and hashCode methods of these Map.Entry objects. A reference-equality based Map.Entry e is equal to an object o if and only if o is a Map.Entry and e.getKey()==o.getKey() && e.getValue()==o.getValue(). To accommodate these equals semantics, the hashCode method returns System.identityHashCode(e.getKey()) ^ System.identityHashCode(e.getValue()).

Owing to the reference-equality-based semantics of the Map.Entry instances in the set returned by this method, it is possible that the symmetry and transitivity requirements of the Object#equals(Object) contract may be violated if any of the entries in the set is compared to a normal map entry, or if the set returned by this method is compared to a set of normal map entries (such as would be returned by a call to this method on a normal map). However, the Object.equals contract is guaranteed to hold among identity-based map entries, and among sets of such entries.
[中]返回此映射中包含的映射的集合视图。返回集中的每个元素都是一个基于引用等式的映射。进入集合由映射支持,因此对映射的更改将反映在集合中,反之亦然。如果在对集合进行迭代时修改映射,则迭代的结果是未定义的。该集合支持元素移除,即通过迭代器从映射中移除相应的映射。移除,设置。移除、移除所有、保留和清除方法。它不支持add或addAll方法。
就像背景地图一样,地图。此方法返回的集合中的条目对象将键和值相等定义为引用相等,而不是对象相等。这会影响这些映射的equals和hashCode方法的行为。条目对象。基于引用等式的映射。当且仅当o是映射时,条目e等于对象o。条目和e.getKey()==o.getKey()&&e.getValue()==o.getValue()。为了适应这些equals语义,hashCode方法返回System。identityHashCode(e.getKey())^System。identityHashCode(例如getValue())。
由于基于引用等式的映射语义。在该方法返回的集合中的条目实例中,如果将集合中的任何条目与普通映射条目进行比较,则可能会违反对象#equals(Object)契约的对称性和及物性要求,或者,如果将此方法返回的集合与一组普通映射项进行比较(例如,在普通映射上调用此方法将返回)。然而,这一目标是正确的。equals契约保证在基于身份的映射条目之间以及在这些条目的集合之间保持不变。

代码示例

代码示例来源:origin: requery/requery

@Override @Nonnull
  public Set<Entry<Class<?>, V>> entrySet() {
    return map.entrySet();
  }
}

代码示例来源:origin: Sable/soot

/**
 * {@inheritDoc}
 */
@Override
public void clear() {
 delegate.entrySet().clear();
}

代码示例来源:origin: apache/ignite

/**
 * Increment positions of already presented objects afterward given object.
 *
 * @param svdObjs Map with objects already presented in the buffer.
 * @param obj Object.
 * @param hashLen Length of the object's hash.
 */
private static void incValues(IdentityHashMap<Object, EntryReference> svdObjs, Object obj, int hashLen) {
  int baseline = svdObjs.get(obj).pos;
  for (IdentityHashMap.Entry<Object, EntryReference> entry : svdObjs.entrySet()) {
    EntryReference ref = entry.getValue();
    int pos = ref.pos;
    if (pos > baseline)
      ref.pos = pos + hashLen;
  }
}

代码示例来源:origin: robovm/robovm

private void writeObject(ObjectOutputStream stream) throws IOException {
  stream.defaultWriteObject();
  stream.writeInt(size);
  Iterator<?> iterator = entrySet().iterator();
  while (iterator.hasNext()) {
    MapEntry<?, ?> entry = (MapEntry) iterator.next();
    stream.writeObject(entry.key);
    stream.writeObject(entry.value);
  }
}

代码示例来源:origin: stanfordnlp/CoreNLP

public IdentityHashMap<Tree, byte[]> convertToBytes(IdentityHashMap<Tree, List<Tree>> uncompressed) {
 IdentityHashMap<Tree, byte[]> compressed = Generics.newIdentityHashMap();
 for (Map.Entry<Tree, List<Tree>> entry : uncompressed.entrySet()) {
  compressed.put(entry.getKey(), convertToBytes(entry.getValue()));
 }
 return compressed;
}

代码示例来源:origin: apache/geode

protected void cleanupNonDirtyRegions() {
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  txrs.cleanupNonDirtyEntries(r);
 }
}

代码示例来源:origin: stanfordnlp/CoreNLP

/**
 * Get the list of files on which this JVM holds a lock.
 * @return A collection of files on which the JVM holds a file lock.
 */
public static Collection<File> locksHeld() {
 ArrayList<File> files = Generics.newArrayList();
 for (Entry<File, FileSemaphore> entry : fileLocks.entrySet()) {
  if (entry.getValue().isActive()) {
   files.add(entry.getKey());
  }
 }
 return files;
}

代码示例来源:origin: spotbugs/spotbugs

@ExpectWarning(value="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS", confidence=Confidence.HIGH)
public void addAll(IdentityHashMap<Color, Integer> m) {
  c.addAll(m.entrySet());
}
@ExpectWarning(value="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS", confidence=Confidence.HIGH)

代码示例来源:origin: apache/geode

private void lockTXRegions(IdentityHashMap<InternalRegion, TXRegionState> regions) {
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  r.getRegionMap().lockRegionForAtomicTX(r);
 }
}

代码示例来源:origin: apache/geode

private TXLockRequest createLockRequest() {
 TXLockRequest result = new TXLockRequest();
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  txrs.createLockRequest(r, result);
 }
 return result;
}

代码示例来源:origin: apache/geode

private List/* <TXEntryStateWithRegionAndKey> */ getSortedEntries() {
 ArrayList/* <TXEntryStateWithRegionAndKey> */ entries = new ArrayList();
 Iterator it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry me = (Map.Entry) it.next();
  InternalRegion r = (InternalRegion) me.getKey();
  TXRegionState txrs = (TXRegionState) me.getValue();
  txrs.getEntries(entries, r);
 }
 if (entries.isEmpty()) {
  return Collections.EMPTY_LIST;
 } else {
  Collections.sort(entries);
  return entries;
 }
}

代码示例来源:origin: apache/geode

@Override
public List getEvents() {
 ArrayList events = new ArrayList();
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry me = it.next();
  InternalRegion r = (InternalRegion) me.getKey();
  TXRegionState txrs = (TXRegionState) me.getValue();
  txrs.getEvents(r, events, this);
 }
 if (events.isEmpty()) {
  return Collections.EMPTY_LIST;
 } else {
  Collections.sort(events);
  return Collections.unmodifiableList(events);
 }
}

代码示例来源:origin: apache/geode

private void unlockTXRegions(IdentityHashMap<InternalRegion, TXRegionState> regions) {
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  r.getRegionMap().unlockRegionForAtomicTX(r);
 }
}

代码示例来源:origin: apache/geode

private void checkForConflicts() throws CommitConflictException, PrimaryBucketException {
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  try {
   txrs.checkForConflicts(r);
  } catch (DiskAccessException dae) {
   r.handleDiskAccessException(dae);
   throw dae;
  }
 }
}

代码示例来源:origin: apache/geode

/**
 * this builds a new TXCommitMessage and returns it
 *
 * @return the new message
 */
protected TXCommitMessage buildMessage() {
 TXCommitMessage msg =
   new TXCommitMessage(this.proxy.getTxId(), this.proxy.getTxMgr().getDM(), this);
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  txrs.buildMessage(r, msg);
 }
 return msg;
}

代码示例来源:origin: apache/geode

/**
 * this builds a new TXCommitMessage and returns it
 *
 * @return the new message
 */
protected TXCommitMessage buildCompleteMessage() {
 TXCommitMessage msg =
   new TXCommitMessage(this.proxy.getTxId(), this.proxy.getTxMgr().getDM(), this);
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  txrs.buildCompleteMessage(r, msg);
  // rcl.add(r);
 }
 return msg;
}

代码示例来源:origin: apache/incubator-druid

for (Map.Entry<TimelineEntry, Interval> entry : allEntries.entrySet()) {
 Interval interval = entry.getValue();

代码示例来源:origin: apache/geode

/**
 * this builds a new DistTXAdjunctCommitMessage and returns it
 *
 * @return the new message
 */
protected TXCommitMessage buildMessageForAdjunctReceivers() {
 TXCommitMessage msg =
   new DistTXAdjunctCommitMessage(this.proxy.getTxId(), this.proxy.getTxMgr().getDM(), this);
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  // only on the primary
  if (r.isUsedForPartitionedRegionBucket() && !txrs.isCreatedDuringCommit()) {
   txrs.buildMessageForAdjunctReceivers(r, msg);
  }
 }
 return msg;
}

代码示例来源:origin: apache/geode

public void generateTailKeysForParallelDispatcherEvents() {
 Iterator<Map.Entry<InternalRegion, TXRegionState>> it = this.regions.entrySet().iterator();
 while (it.hasNext()) {
  Map.Entry<InternalRegion, TXRegionState> me = it.next();
  InternalRegion r = me.getKey();
  TXRegionState txrs = me.getValue();
  InternalRegion region = txrs.getRegion();
  // Check if it is a bucket region
  if (region.isUsedForPartitionedRegionBucket()) {
   // Check if it is a primary bucket
   BucketRegion bRegion = (BucketRegion) region;
   if (!(bRegion instanceof AbstractBucketRegionQueue)) {
    if (bRegion.getBucketAdvisor().isPrimary()) {
     // Generate a tail key for each entry
     Set entries = txrs.getEntryKeys();
     if (!entries.isEmpty()) {
      Iterator entryIt = entries.iterator();
      while (entryIt.hasNext()) {
       Object key = entryIt.next();
       TXEntryState txes = txrs.getTXEntryState(key);
       long tailKey = ((BucketRegion) region).generateTailKey();
       txes.getDistTxEntryStates().setTailKey(tailKey);
      }
     }
    } // end if primary
   }
  }
 }
}

代码示例来源:origin: stanfordnlp/CoreNLP

IdentityHashMap<Tree, SimpleMatrix> vectors = deepTree.getVectors();
for (Map.Entry<Tree, SimpleMatrix> entry : vectors.entrySet()) {
 log.info(entry.getKey() + "   " +  entry.getValue());

相关文章