编程撰写的类有如下属性和方法:
private int n; //输入数的个数
private double max;//输入数的最大数
private double min; //输入数的最小数public double getMedian(); //取得这组数值排序后位于中间位置的数
public Collection getModes(); //以Collection取得这组数值的众数(众数:出现次数最多的数值,可能有一个以上。)
public void printSortedData(); //印出排序后的数值数据请大家多多发表自己的见解,帮帮我吧!
十分谢谢你们啦,嘿嘿
private int n; //输入数的个数
private double max;//输入数的最大数
private double min; //输入数的最小数public double getMedian(); //取得这组数值排序后位于中间位置的数
public Collection getModes(); //以Collection取得这组数值的众数(众数:出现次数最多的数值,可能有一个以上。)
public void printSortedData(); //印出排序后的数值数据请大家多多发表自己的见解,帮帮我吧!
十分谢谢你们啦,嘿嘿
private int n; //输入数的个数
private double max;//输入数的最大数
private double min; //输入数的最小数三个属性我感觉应该是也要对外公开的吧?不应该设为private吧?如果是不是应该给外面提供一个接口用来取得呢?至少说的那三个方法就正常写呗,没什么可提的
private double max;//输入数的最大数
private double min; //输入数的最小数三个属性我感觉应该是也要对外公开的吧?不应该设为private吧?如果是不是应该给外面提供一个接口用来取得呢?
-----------------------
属性还是不要对外公布的好,不安全...
2在排序后做,我遍历了两次数组,目标是达到了,不知道有没有更好的方法。
import java.util.*;public class Test {
public static void main(String[] args) {
int[] sortArray = new int[] { 1, 1, 2, 2,2, 2, 3, 3, 3, 4,4,4,4,5,5 };
int count = 1;
int max = 0;
for (int i = 1; i < sortArray.length; i++) {
if (sortArray[i] == sortArray[i - 1])
++count;
else {
if (count > max)
max = count;
count = 1;
}
}
System.out.println("出现次数最多为"+max+"次");
count = 1;
Collection result = new ArrayList();
for (int i = 1; i < sortArray.length; i++) {
if (sortArray[i] == sortArray[i - 1])
++count;
else {
if (count==max)result.add(sortArray[i-1]);
count = 1;
}
}
System.out.print("分别为:");
for (Iterator iter = result.iterator(); iter.hasNext();) {
System.out.print(iter.next()+",");
}
}
}
排序的话,你可以自己写个函数排序,也可以用Collections.sort()方法排序。
之后取中间元就简单了,ArrayList.size()可以获得长度,不管是奇数也好,偶数也好,都很容易取得中间元。