From 82df257c772e803fd85aec8b03317318e0f81ebd Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 29 Apr 2013 14:59:27 -0400 Subject: [PATCH] switch to getSubset(), mult() instead of mul(), add upper/lower --- core/src/processing/data/FloatList.java | 7 +- core/src/processing/data/IntDict.java | 2 +- core/src/processing/data/IntList.java | 43 +++++-- core/src/processing/data/Sort.java | 4 + core/src/processing/data/StringList.java | 142 ++++++++--------------- 5 files changed, 93 insertions(+), 105 deletions(-) diff --git a/core/src/processing/data/FloatList.java b/core/src/processing/data/FloatList.java index cd6205e3e..8a5037a85 100644 --- a/core/src/processing/data/FloatList.java +++ b/core/src/processing/data/FloatList.java @@ -17,6 +17,11 @@ public class FloatList implements Iterable { } + public FloatList(int length) { + data = new float[length]; + } + + public FloatList(float[] list) { count = list.length; data = new float[count]; @@ -387,7 +392,7 @@ public class FloatList implements Iterable { } - public void mul(int index, float amount) { + public void mult(int index, float amount) { data[index] *= amount; } diff --git a/core/src/processing/data/IntDict.java b/core/src/processing/data/IntDict.java index 64e15452d..c5d4b28bb 100644 --- a/core/src/processing/data/IntDict.java +++ b/core/src/processing/data/IntDict.java @@ -271,7 +271,7 @@ public class IntDict { } - public void mul(String key, int amount) { + public void mult(String key, int amount) { int index = index(key); if (index != -1) { values[index] *= amount; diff --git a/core/src/processing/data/IntList.java b/core/src/processing/data/IntList.java index 21e8217ff..bd573ee45 100644 --- a/core/src/processing/data/IntList.java +++ b/core/src/processing/data/IntList.java @@ -27,6 +27,11 @@ public class IntList implements Iterable { } + public IntList(int length) { + data = new int[length]; + } + + public IntList(int[] source) { count = source.length; data = new int[count]; @@ -329,7 +334,7 @@ public class IntList implements Iterable { } - public void mul(int index, int amount) { + public void mult(int index, int amount) { data[index] *= amount; } @@ -397,17 +402,17 @@ public class IntList implements Iterable { // } - 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) { +// 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 reverse() { @@ -558,6 +563,20 @@ public class IntList implements Iterable { // } + public IntList getSubset(int start) { + return getSubset(start, count - start); + } + + + 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; + } + + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/core/src/processing/data/Sort.java b/core/src/processing/data/Sort.java index 518944a20..d205edb12 100644 --- a/core/src/processing/data/Sort.java +++ b/core/src/processing/data/Sort.java @@ -1,6 +1,10 @@ package processing.data; +/** + * Internal sorter used by several data classes. + * Advanced users only, not official API. + */ public abstract class Sort implements Runnable { public Sort() { } diff --git a/core/src/processing/data/StringList.java b/core/src/processing/data/StringList.java index ed7ed2968..f8e1b9946 100644 --- a/core/src/processing/data/StringList.java +++ b/core/src/processing/data/StringList.java @@ -13,7 +13,12 @@ public class StringList implements Iterable { public StringList() { - data = new String[10]; + this(10); + } + + + public StringList(int length) { + data = new String[length]; } @@ -358,85 +363,6 @@ public class StringList implements Iterable { } -// public void increment(int index) { -// data[index]++; -// } -// -// -// public void add(int index, int amount) { -// data[index] += amount; -// } -// -// -// public void sub(int index, int amount) { -// data[index] -= amount; -// } -// -// -// public void mul(int index, int amount) { -// data[index] *= amount; -// } -// -// -// public void div(int index, int amount) { -// data[index] /= amount; -// } - - -// public String min() { -// if (count == 0) { -// throw new ArrayIndexOutOfBoundsException("Cannot use min() on IntList of length 0."); -// } -// if (data.length == 0) { -// return String.NaN; -// } -// String m = Float.NaN; -// for (int i = 0; i < data.length; i++) { -// // find one good value to start -// if (data[i] == data[i]) { -// m = data[i]; -// -// // calculate the rest -// for (int j = i+1; j < data.length; j++) { -// float d = data[j]; -// if (!Float.isNaN(d) && (d < m)) { -// m = data[j]; -// } -// } -// break; -// } -// } -// return m; -// } - - -// public float max() { -// if (count == 0) { -// throw new ArrayIndexOutOfBoundsException("Cannot use max() on IntList of length 0."); -// } -// if (data.length == 0) { -// return Float.NaN; -// } -// float m = Float.NaN; -// for (int i = 0; i < data.length; i++) { -// // find one good value to start -// if (data[i] == data[i]) { -// m = data[i]; -// -// // calculate the rest -// for (int j = i+1; j < data.length; j++) { -// float d = data[j]; -// if (!Float.isNaN(d) && (d > m)) { -// m = data[j]; -// } -// } -// break; -// } -// } -// return m; -// } - - /** Sorts the array in place. */ public void sort() { sortImpl(false); @@ -477,17 +403,17 @@ public class StringList implements Iterable { // } - 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) { +// 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 reverse() { @@ -534,6 +460,26 @@ public class StringList implements Iterable { } + /** Make the entire list lower case. */ + public void lower() { + for (int i = 0; i < count; i++) { + if (data[i] != null) { + data[i] = data[i].toLowerCase(); + } + } + } + + + /** Make the entire list upper case. */ + public void upper() { + for (int i = 0; i < count; i++) { + if (data[i] != null) { + data[i] = data[i].toUpperCase(); + } + } + } + + public StringList copy() { StringList outgoing = new StringList(data); outgoing.count = count; @@ -599,6 +545,20 @@ public class StringList implements Iterable { } + public StringList getSubset(int start) { + return getSubset(start, count - start); + } + + + 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; + } + + /** Get a list of all unique entries. */ public String[] getUnique() { return getTally().keyArray();