From 2d597f0d7aabad88654cad462899c2b1e421d67d Mon Sep 17 00:00:00 2001 From: Jochen Berger Date: Mon, 18 Aug 2014 11:00:13 +0200 Subject: [PATCH] small performance improvements for Utils.createRange --- .../main/java/com/jayway/jsonpath/internal/Utils.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java b/json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java index a85fea23..b5803cfe 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java @@ -12,6 +12,7 @@ import java.io.ObjectStreamClass; import java.io.OutputStream; import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -27,7 +28,13 @@ public final class Utils { * @return */ public static List createRange(int start, int end) { - List range = new ArrayList(); + if (end <= start) { + throw new IllegalArgumentException("Cannot create range from " + start + " to " + end + ", end must be greater than start."); + } + if (start == end-1) { + return Collections.emptyList(); + } + List range = new ArrayList(end-start-1); for (int i = start; i < end; i++) { range.add(i); } @@ -40,7 +47,6 @@ public final class Utils { if (!iter.hasNext()) { return ""; } - StringBuilder buffer = new StringBuilder(); buffer.append(wrap).append(iter.next()).append(wrap); while (iter.hasNext()) {