我正在尝试实例化并以对象的形式返回结果,但是我不确定该怎么做。任何帮助,将不胜感激!谢谢。
当前代码
private static Results stats(int[] data) {
int sum = 0,
range,
count = 0,
max = data[0],
min = data[0],
mode,
middle = data.length / 2,
cardinality = data.length;
double mean = 0,
median;
Stats Results = new Stats();
for (int i = 0; i < data.length; i++) {
sum += data[i];
if (data[i] < min){
min = data[i];
}
if (data[i] > max){
max = data[i];
}
if (data[i] > count){
count = data[i];
mode = i;
}
}
if (data.length % 2 == 1){
median = data.length / 2;
} else {
median = data[middle - 1] + data[middle] / 2;
}
mean = sum / data.length;
range = max - min;
}
编辑这是公共类Stats中的类
static class Results {
public int[] data;
public int cardinality;
public int range;
public double mean;
public double median;
public int mode;
public boolean nomode;
}
这是所有代码(粘贴时格式有些混乱)
public class Stats {
public static void main(String[] argv) {
int[][] data = {
{ 0, 2, 4, 5, 5, 8 },
{ 1, 5, 6, 6, 6, 7, 9 },
{ -4, -2, -2, 3, 12, 12, 42 },
{ 0 },
{ 1, 2 },
{ 1, 1 },
{ 1, 2, 3 },
{ 5, 5, 5, 5, 5 },
{ -2, -2, 0, 1, 1, 2, 2, 2 },
{ -7, 0, 0, 3, 3, 3, 4, 4 },
};
for (int i = 0; i < data.length; i++) {
Results results = stats(data[i]);
printResults(results);
}
}
private static void printArray(int[] x, boolean nl) {
System.out.print("[");
for (int i = 0, j = x.length - 1; i < j; i++)
System.out.print(x[i] + ",");
System.out.print(x[x.length - 1] + "]");
if (nl) System.out.println();
}
private static void printResults(Results r) {
printArray(r.data, true);
StringBuffer sb = new StringBuffer("...mean: ");
sb.append(r.mean).append("; median: "). append(r.median).
append("; mode: "). append(r.nomode ? "modeless" : r.mode).
append("; cardinality: ").append(r.cardinality).
append("; range: ").append(r.range);
System.out.println(sb);
System.out.println();
}
static class Results {
public int[] data;
public int cardinality;
public int range;
public double mean;
public double median;
public int mode;
public boolean nomode;
}
private static Results stats(int[] data) {
int sum = 0,
range,
count = 0,
max = data[0],
min = data[0],
mode,
middle = data.length / 2,
cardinality = data.length;
double mean = 0,
median;
Stats Results = new Stats();
for (int i = 0; i < data.length; i++) {
sum += data[i];
if (data[i] < min){
min = data[i];
}
if (data[i] > max){
max = data[i];
}
if (data[i] > count){
count = data[i];
mode = i;
}
}
if (data.length % 2 == 1){
median = data.length / 2;
} else {
median = data[middle - 1] + data[middle] / 2;
}
mean = sum / data.length;
range = max - min;
}
}
答案 0 :(得分:0)
方法声明应如下所示:
private static Results stats(int[] data){
....
.....
return Results;
}
返回类型应该是类名而不是对象名,这是统计信息 并在方法结束之前添加上述return语句。