HBASE-23335 : Improving cost functions array copy in StochasticLoadBalancer (#874)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index 5ad32f6..911f8fe 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -417,9 +417,7 @@
 
     double currentCost = computeCost(cluster, Double.MAX_VALUE);
     curOverallCost = currentCost;
-    for (int i = 0; i < this.curFunctionCosts.length; i++) {
-      curFunctionCosts[i] = tempFunctionCosts[i];
-    }
+    System.arraycopy(tempFunctionCosts, 0, curFunctionCosts, 0, curFunctionCosts.length);
     double initCost = currentCost;
     double newCost = currentCost;
 
@@ -463,9 +461,7 @@
 
         // save for JMX
         curOverallCost = currentCost;
-        for (int i = 0; i < this.curFunctionCosts.length; i++) {
-          curFunctionCosts[i] = tempFunctionCosts[i];
-        }
+        System.arraycopy(tempFunctionCosts, 0, curFunctionCosts, 0, curFunctionCosts.length);
       } else {
         // Put things back the way they were before.
         // TODO: undo by remembering old values