switch to getSubset(), mult() instead of mul(), add upper/lower

This commit is contained in:
Ben Fry
2013-04-29 14:59:27 -04:00
parent 0e6077f29c
commit 82df257c77
5 changed files with 93 additions and 105 deletions

View File

@@ -17,6 +17,11 @@ public class FloatList implements Iterable<Float> {
}
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<Float> {
}
public void mul(int index, float amount) {
public void mult(int index, float amount) {
data[index] *= amount;
}

View File

@@ -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;

View File

@@ -27,6 +27,11 @@ public class IntList implements Iterable<Integer> {
}
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<Integer> {
}
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<Integer> {
// }
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<Integer> {
// }
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();

View File

@@ -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() { }

View File

@@ -13,7 +13,12 @@ public class StringList implements Iterable<String> {
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<String> {
}
// 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<String> {
// }
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<String> {
}
/** 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<String> {
}
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();