示例#1
0
  private ConcurrentMap<Long, Set<InstantCodeFragmentInfo>> categorizeFragments(
      Collection<InstantCodeFragmentInfo> fragments) {
    final ConcurrentMap<Long, Set<InstantCodeFragmentInfo>> result =
        new ConcurrentHashMap<Long, Set<InstantCodeFragmentInfo>>();

    final long length = fragments.size();
    long count = 0;

    for (final InstantCodeFragmentInfo fragment : fragments) {
      if (result.containsKey(fragment.getHash())) {
        result.get(fragment.getHash()).add(fragment);
      } else {
        final Set<InstantCodeFragmentInfo> newSet = new HashSet<InstantCodeFragmentInfo>();
        newSet.add(fragment);
        result.put(fragment.getHash(), newSet);
      }
      if (++count % 10000 == 0) {
        System.out.println(
            "\t[" + count + "/" + length + "] 1st step processed " + count + " elements");
      }
    }

    System.out.println("\t[" + count + "/" + length + "] 1st step processed all elements");

    return result;
  }