for (Iterator<BugInstance> i = bugCollection.iterator(); i.hasNext(); ) { bugCollectionMap.put(i.next(), bugCollection); }      for (Iterator<ClassHash> i = bugCollection.classHashIterator(); i.hasNext();) { ClassHash classHash = i.next(); String canonicalClassName = classHashToCanonicalClassNameMap.get(classHash); if (canonicalClassName == null || classHash.getClassName().compareTo(canonicalClassName) < 0) { classHashToCanonicalClassNameMap.put(classHash, classHash.getClassName());
if (USE_HASHES) { for (Iterator<BugInstance> i = bugCollection.iterator(); i.hasNext(); ) { bugCollectionMap.put(i.next(), bugCollection); }      for (Iterator<ClassHash> i = bugCollection.classHashIterator(); i.hasNext();) { ClassHash classHash = i.next(); String canonicalClassName = classHashToCanonicalClassNameMap.get(classHash); if (canonicalClassName == null || classHash.getClassName().compareTo(canonicalClassName) < 0) { classHashToCanonicalClassNameMap.put(classHash, classHash.getClassName()); }
	public void registerBugCollection(BugCollection bugCollection) {		for (Iterator<BugInstance> i = bugCollection.iterator(); i.hasNext(); ) {			bugCollectionMap.put(i.next(), bugCollection);		}				// For each distinct ClassHash, keep track of the lexicographically		// least class name.  This serves as the "representative" for all (equivalent)		// classes sharing that hash value.  This allows us to ensure that the		// class ordering induced by this comparator is transitive.		for (Iterator<ClassHash> i = bugCollection.classHashIterator(); i.hasNext();) {			ClassHash classHash = i.next();			String canonicalClassName = classHashToCanonicalClassNameMap.get(classHash);			if (canonicalClassName == null || classHash.getClassName().compareTo(canonicalClassName) < 0) {				classHashToCanonicalClassNameMap.put(classHash, classHash.getClassName());			}		}	}