Use ArrayMap instead of HashMap for storing relavant nodes

This fix is to take advantage of ArrayMap, which is a key-value
mapping data structure that is more memory efficient than HashMap.

Bug: 11604254
Change-Id: I57006880de570a4d7f3899e274cf0a06355d116b
diff --git a/core/java/android/animation/AnimatorSet.java b/core/java/android/animation/AnimatorSet.java
index 6503d89..951fe49 100644
--- a/core/java/android/animation/AnimatorSet.java
+++ b/core/java/android/animation/AnimatorSet.java
@@ -16,9 +16,10 @@
 
 package android.animation;
 
+import android.util.ArrayMap;
+
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -68,7 +69,7 @@
      * to a single node representing that Animator, not create a new Node
      * if one already exists.
      */
-    private HashMap<Animator, Node> mNodeMap = new HashMap<Animator, Node>();
+    private ArrayMap<Animator, Node> mNodeMap = new ArrayMap<Animator, Node>();
 
     /**
      * Set of all nodes created for this AnimatorSet. This list is used upon
@@ -646,7 +647,7 @@
         anim.mTerminated = false;
         anim.mStarted = false;
         anim.mPlayingSet = new ArrayList<Animator>();
-        anim.mNodeMap = new HashMap<Animator, Node>();
+        anim.mNodeMap = new ArrayMap<Animator, Node>();
         anim.mNodes = new ArrayList<Node>(nodeCount);
         anim.mSortedNodes = new ArrayList<Node>(nodeCount);
         anim.mReversible = mReversible;