背包是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素(用例也可以检查背包是否为空或者获取背包中元素的数量)。
public class Stats<br>{<br> public static void main(String[] args)<br> {<br> Bag<Double> numbers = new Bag<Double>();<br> while (! StdIn.isEmpty())<br> numbers.add(StdIn.readDouble());<br> int N = numbers.size();<br> double sum = 0.0;<br> for (double x : numbers)<br> sum += x;<br> double mean = sum/N;<br> sum = 0.0;<br> for (double x : numbers)<br> sum += (x - mean)*(x - mean);<br> double std = Math.sqrt(sum/(N-1));<br> StdOut.printf("Mean: %.2f\n", mean);<br> StdOut.printf("Std dev: %.2f\n", std);<br> }<br>}