diff --git a/core/src/processing/data/FloatList.java b/core/src/processing/data/FloatList.java index 4c5022e7d..92a3c160b 100644 --- a/core/src/processing/data/FloatList.java +++ b/core/src/processing/data/FloatList.java @@ -577,17 +577,18 @@ public class FloatList implements Iterable { // } - public void subset(int start) { - subset(start, count - start); - } +// public void subset(int start) { +// subset(start, count - start); +// } - public void subset(int start, int num) { - for (int i = 0; i < num; i++) { - data[i] = data[i+start]; - } - count = num; - } +// public void subset(int start, int num) { +// for (int i = 0; i < num; i++) { +// data[i] = data[i+start]; +// } +// count = num; +// } + /** * @webref floatlist:method @@ -707,6 +708,18 @@ public class FloatList implements Iterable { } + public FloatList getSubset(int start) { + return getSubset(start, count - start); + } + + + public FloatList getSubset(int start, int num) { + float[] subset = new float[num]; + System.arraycopy(data, start, subset, 0, num); + return new FloatList(subset); + } + + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/core/src/processing/data/IntList.java b/core/src/processing/data/IntList.java index 6caa9686c..7f7dcc10b 100644 --- a/core/src/processing/data/IntList.java +++ b/core/src/processing/data/IntList.java @@ -704,11 +704,9 @@ public class IntList implements Iterable { public IntList getSubset(int start, int num) { - IntList outgoing = new IntList(num); - for (int i = 0; i < num; i++) { - System.arraycopy(data, start, outgoing.data, 0, num); - } - return outgoing; + int[] subset = new int[num]; + System.arraycopy(data, start, subset, 0, num); + return new IntList(subset); } diff --git a/core/src/processing/data/StringList.java b/core/src/processing/data/StringList.java index 37b80fddb..ce13fca94 100644 --- a/core/src/processing/data/StringList.java +++ b/core/src/processing/data/StringList.java @@ -648,11 +648,9 @@ public class StringList implements Iterable { public StringList getSubset(int start, int num) { - StringList outgoing = new StringList(num); - for (int i = 0; i < num; i++) { - System.arraycopy(data, start, outgoing.data, 0, num); - } - return outgoing; + String[] subset = new String[num]; + System.arraycopy(data, start, subset, 0, num); + return new StringList(subset); }