编程撰写的类有如下属性和方法:
 
private int n; //输入数的个数
private double max;//输入数的最大数
private double min; //输入数的最小数public double getMedian(); //取得这组数值排序后位于中间位置的数
public Collection getModes(); //以Collection取得这组数值的众数(众数:出现次数最多的数值,可能有一个以上。)
public void printSortedData(); //印出排序后的数值数据请大家多多发表自己的见解,帮帮我吧!
十分谢谢你们啦,嘿嘿

解决方案 »

  1.   

    你的
    private int n; //输入数的个数
    private double max;//输入数的最大数
    private double min; //输入数的最小数三个属性我感觉应该是也要对外公开的吧?不应该设为private吧?如果是不是应该给外面提供一个接口用来取得呢?至少说的那三个方法就正常写呗,没什么可提的
      

  2.   

    怎么没有定义一个数组或者List来存储这些数呢?
      

  3.   

    private int n; //输入数的个数
    private double max;//输入数的最大数
    private double min; //输入数的最小数三个属性我感觉应该是也要对外公开的吧?不应该设为private吧?如果是不是应该给外面提供一个接口用来取得呢?
    -----------------------
    属性还是不要对外公布的好,不安全...
      

  4.   

    1,3好解决,排序可以参考我写的排序算法http://blog.csdn.net/infon/archive/2007/04/13/1563920.aspx
    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()+",");
    }
    }
    }
      

  5.   

    不能用数组,但是可以用List,比如ArrayList。
    排序的话,你可以自己写个函数排序,也可以用Collections.sort()方法排序。
    之后取中间元就简单了,ArrayList.size()可以获得长度,不管是奇数也好,偶数也好,都很容易取得中间元。