rendered paste bodyclass Node<T extends Number> {
Integer numNodes;
Node first; Node last;
Node next; Node prev;
T value;
Node(T value) {
this.numNodes = 1;
this.value = value;
this.first = this;
this.last = this;
}
void add(T... values) {
for (T value: values) {
Node newNode = new Node(value);
newNode.prev = this.last;
newNode.first = this.first;
newNode.next = null;
newNode.numNodes = this.first.numNodes;
this.last.next = newNode;
for (Node n = this.first; n != null; n = n.next)
n.last = newNode;
this.first.numNodes += 1;
}
}
static float sum(Node node) {
return ((Number) node.value).floatValue() +
((Number) (node.next != null ? node.sum(node.next) : 0)).floatValue();
}
static float durchschnitt(Node node) {
return node.sum(node.first)/node.numNodes;
}
}
public class foo {
static void test() {
Node<Float> node;
node = new Node(2.5f);
node.add(3.5f, 1.6f, 3.6f, 1.3f, 3.0f);
System.out.println(Node.sum(node.first));
System.out.println(Node.durchschnitt(node));
}
}