Repository: kylin
Updated Branches:
  refs/heads/master f3a33673f -> 4a1bc1945


minor, refind a API in rangeutil class


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/2174af25
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/2174af25
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/2174af25

Branch: refs/heads/master
Commit: 2174af259dbf53246bb366c1d605cf997b38c057
Parents: f3a3367
Author: lidongsjtu <[email protected]>
Authored: Thu Apr 14 16:17:54 2016 +0800
Committer: lidongsjtu <[email protected]>
Committed: Thu Apr 14 16:18:09 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/util/RangeUtil.java | 25 +++++++++++---------
 .../apache/kylin/common/util/RangeUtilTest.java |  9 ++++++-
 2 files changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/2174af25/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
----------------------------------------------------------------------
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java 
b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
index 96c6d9b..ae6cf51 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
@@ -21,8 +21,11 @@ package org.apache.kylin.common.util;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 import java.util.NavigableMap;
+import java.util.Set;
+import java.util.SortedSet;
 
 import com.google.common.collect.BoundType;
 import com.google.common.collect.Lists;
@@ -198,23 +201,23 @@ public class RangeUtil {
         return sb.toString();
     }
 
-    public static List<Range<Integer>> buildRanges(int[] values, boolean 
needSort) {
-        ArrayList ranges = Lists.newArrayList();
+    public static ArrayList<Range<Integer>> buildRanges(SortedSet<Integer> 
values) {
+        ArrayList<Range<Integer>> ranges = Lists.newArrayList();
 
-        if (values == null || values.length == 0)
+        if (values == null || values.isEmpty())
             return ranges;
 
-        if (needSort) {
-            Arrays.sort(values);
-        }
-        int lastBegin = values[0];
+        Iterator<Integer> iter = values.iterator();
+        int lastBegin = iter.next();
         int lastEnd = lastBegin;
-        for (int index = 1; index < values.length; index++) {
-            if (values[index] - lastEnd != 1) {
+        int temp = 0;
+        for (int index = 1; index < values.size(); index++) {
+            temp = iter.next();
+            if (temp - lastEnd != 1) {
                 ranges.add(Ranges.closed(lastBegin, lastEnd));
-                lastBegin = values[index];
+                lastBegin = temp;
             }
-            lastEnd = values[index];
+            lastEnd = temp;
         }
         ranges.add(Ranges.closed(lastBegin, lastEnd));
         return ranges;

http://git-wip-us.apache.org/repos/asf/kylin/blob/2174af25/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java
----------------------------------------------------------------------
diff --git 
a/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java 
b/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java
index bc0937e..11bf4ad 100644
--- a/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java
+++ b/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java
@@ -21,13 +21,16 @@ package org.apache.kylin.common.util;
 import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
+import java.util.Set;
 import java.util.TreeMap;
+import java.util.TreeSet;
 
 import org.junit.Assert;
 import org.junit.Test;
 
 import com.google.common.collect.Range;
 import com.google.common.collect.Ranges;
+import com.google.common.collect.Sets;
 
 /**
  */
@@ -69,7 +72,11 @@ public class RangeUtilTest {
     @Test
     public void testBuildRanges() {
         int[] test1 = { 1, 2, 3, 5, 7, 8, 10, 4 };
-        List<Range<Integer>> ranges = RangeUtil.buildRanges(test1, true);
+        TreeSet<Integer> treeSet = Sets.newTreeSet();
+        for (int t : test1) {
+            treeSet.add(t);
+        }
+        List<Range<Integer>> ranges = RangeUtil.buildRanges(new 
TreeSet<Integer>(treeSet));
         Assert.assertEquals(3, ranges.size());
     }
 }

Reply via email to