From b355077c2a5c0bbf482f00bc0e99d61131e6f5e7 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 11 Jul 2012 10:57:58 +0200 Subject: [PATCH] use IdentityHashMap, its get is faster than THashMap's --- .../completion/impl/LiftShorterItemsClassifier.java | 8 ++------ .../codeInsight/lookup/CachingComparingClassifier.java | 5 ++--- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java index 7da9e8db5386..99c99a6f791f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java @@ -22,7 +22,6 @@ import com.intellij.util.ProcessingContext; import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; -import gnu.trove.THashMap; import gnu.trove.THashSet; import gnu.trove.TObjectHashingStrategy; import org.jetbrains.annotations.Nullable; @@ -35,8 +34,8 @@ import java.util.*; public class LiftShorterItemsClassifier extends Classifier { private final TreeSet mySortedStrings = new TreeSet(); private final MultiMap myElements = new MultiMap(); - private final Map> myToLiftForSorting = new THashMap>(TObjectHashingStrategy.IDENTITY); - private final Map> myToLiftForPreselection = new THashMap>(TObjectHashingStrategy.IDENTITY); + private final Map> myToLiftForSorting = new IdentityHashMap>(); + private final Map> myToLiftForPreselection = new IdentityHashMap>(); private final MultiMap myPrefixes = new MultiMap(); private final Classifier myNext; private final LiftingCondition myCondition; @@ -127,9 +126,7 @@ public class LiftShorterItemsClassifier extends Classifier { boolean forSorting = context.get(CompletionLookupArranger.PURE_RELEVANCE) != Boolean.TRUE; final List result = new ArrayList(); for (LookupElement element : myNext.classify(source, context)) { - assert srcSet.contains(element) : myNext; if (processed.add(element)) { - //System.out.println("element = " + element); List shorter = addShorterElements(srcSet, processed, null, myToLiftForPreselection.get(element)); if (forSorting) { shorter = addShorterElements(srcSet, processed, shorter, myToLiftForSorting.get(element)); @@ -151,7 +148,6 @@ public class LiftShorterItemsClassifier extends Classifier { @Nullable Set from) { if (from != null) { for (LookupElement shorterElement : from) { - //System.out.println("shorterElement = " + shorterElement); if (srcSet.contains(shorterElement) && processed.add(shorterElement)) { if (toLift == null) toLift = new SmartList(); toLift.add(shorterElement); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/CachingComparingClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/CachingComparingClassifier.java index e5980778bc7f..9876f8c506ee 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/CachingComparingClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/CachingComparingClassifier.java @@ -17,17 +17,16 @@ package com.intellij.codeInsight.lookup; import com.intellij.psi.ForceableComparable; import com.intellij.util.ProcessingContext; -import gnu.trove.THashMap; -import gnu.trove.TObjectHashingStrategy; import org.jetbrains.annotations.NotNull; +import java.util.IdentityHashMap; import java.util.Map; /** * @author peter */ public class CachingComparingClassifier extends ComparingClassifier { - private final Map myWeights = new THashMap(TObjectHashingStrategy.IDENTITY); + private final Map myWeights = new IdentityHashMap(); private final LookupElementWeigher myWeigher; private Comparable myFirstWeight; private boolean myPrimitive = true;