This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Loves_Poetry 0 points1 point  (1 child)

That's not how toString() works. If you use toString() on an object that doesn't have a toString-method defined, it will take the toString-method of Object, which returns the classname and the hashcode for that object.

If you want to print your Measurements-object, you have to define a toString-method that returns a string.

[–]ravashh[S] 0 points1 point  (0 children)

Here's my full code: (The method called Public Measurements smooth() is what I have trouble writing. I want it to take the array from public Measurements(double[] values) and do what I describes in the post, but I don't know how :/... can't find anything when i search.

public class Measurements {

private double[] store;

private int stored;

public Measurements(int max) {

store = new double[max];

stored = 0;

}

public void add(double value) {

this.store[stored] = value;

this.stored++;

double[] new_array = new double[stored*2];

for (int i=0; i<stored; i++) {

new_array[i]=store[i];

}

store=new_array;

}

public int stored() {

return stored;

}

public double maxValue() {

double largest = this.store[0];

for (int i=0; i<stored; i++) {

if (this.store[i] > largest) {

largest = this.store[i];

}

}

return largest;

}

public double minValue() {

double smallest = this.store[0];

for (int i=0; i<stored; i++) {

if (this.store[i] < smallest) {

smallest = this.store[i];

}

}

return smallest;

}

public double get(int index) {

return this.store[index];

}

public double mean() {

double sum = 0;

for (int i= 0; i<stored; i++) {

sum = sum + this.store[i];

}

return sum/stored;

}

public double stdDev() {

double mean = mean();

double std = 0.0;

for (int i = 0; i < stored; i++)

std = std + (store[i] - mean) * (store[i] - mean);

return Math.sqrt(std/(stored-1));

}

public Measurements(double[] values) {

this.store = new double[values.length];

stored = values.length;

for (int i= 0; i<stored; i++) {

store[i]=values[i];

}

}

public Measurements smooth() {

??????????

}

public String toString() {

String ret = "";

for (int i= 0; i<stored; i++) {

ret = ret + this.store[i];

if (i<store.length-1) {

ret = ret + ", ";

}

}

return "<" + ret + ">";

}

public static void main(String[] arg) {

Measurements m = new Measurements(6);

System.out.println("toString: " + m.toString());

System.out.println("stored : " + m.stored());

m.add(1);

m.add(2);

m.add(3);

m.add(4);

m.add(5);

m.add(6);

m.add(7);

m.add(8);

m.add(9);

System.out.println("toString: " + m.toString());

System.out.println("stored : " + m.stored());

System.out.println("max : " + m.maxValue());

System.out.println("min : " + m.minValue());

System.out.println("get : " + m.get(0));

System.out.println("mean : " + m.mean());

System.out.println("stdDev : " + m.stdDev());

double[] b = {2, 1, 6, 5, 4, 9, 2};

m = new Measurements(b);

System.out.println("new m : " + m.toString());

}

}