Home / Function/ calculateDuplicates() — netty Function Reference

calculateDuplicates() — netty Function Reference

Architecture documentation for the calculateDuplicates() function in HashCollisionTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  cd4b5b2a_2c94_0086_358c_df261e897a65["calculateDuplicates()"]
  7f4340a8_96bd_ab16_3f24_b4cd9d2cac42["HashCollisionTest"]
  cd4b5b2a_2c94_0086_358c_df261e897a65 -->|defined in| 7f4340a8_96bd_ab16_3f24_b4cd9d2cac42
  d3f29c04_06bf_6ce4_7812_c30e675e84d2["main()"]
  d3f29c04_06bf_6ce4_7812_c30e675e84d2 -->|calls| cd4b5b2a_2c94_0086_358c_df261e897a65
  style cd4b5b2a_2c94_0086_358c_df261e897a65 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/HashCollisionTest.java lines 119–161

    private static Map<Integer, List<CharSequence>> calculateDuplicates(List<CharSequence> strings,
                                                                        Function<CharSequence, Integer> hasher) {
        Map<Integer, List<CharSequence>> hashResults = new HashMap<Integer, List<CharSequence>>();
        Set<Integer> duplicateHashCodes = new HashSet<Integer>();

        for (CharSequence str : strings) {
            Integer hash = hasher.apply(str);
            List<CharSequence> results = hashResults.get(hash);
            if (results == null) {
                results = new ArrayList<CharSequence>(1);
                hashResults.put(hash, results);
            } else {
                duplicateHashCodes.add(hash);
            }
            results.add(str);
        }

        if (duplicateHashCodes.isEmpty()) {
            return Collections.emptyMap();
        }
        Map<Integer, List<CharSequence>> duplicates =
                new HashMap<Integer, List<CharSequence>>(duplicateHashCodes.size());
        for (Integer duplicateHashCode : duplicateHashCodes) {
            List<CharSequence> realDups = new ArrayList<CharSequence>(2);
            Iterator<CharSequence> itr = hashResults.get(duplicateHashCode).iterator();
            // there should be at least 2 elements in the list ... bcz there may be duplicates
            realDups.add(itr.next());
            checknext: do {
                CharSequence next = itr.next();
                for (CharSequence potentialDup : realDups) {
                    if (!AsciiString.contentEqualsIgnoreCase(next, potentialDup)) {
                        realDups.add(next);
                        break checknext;
                    }
                }
            } while (itr.hasNext());

            if (realDups.size() > 1) {
                duplicates.put(duplicateHashCode, realDups);
            }
        }
        return duplicates;
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does calculateDuplicates() do?
calculateDuplicates() is a function in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/HashCollisionTest.java.
Where is calculateDuplicates() defined?
calculateDuplicates() is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/HashCollisionTest.java at line 119.
What calls calculateDuplicates()?
calculateDuplicates() is called by 1 function(s): main.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free