日期:2014-05-20  浏览次数:20699 次

又有问题请教高人了,多谢了!
编程撰写的类有如下属性和方法:
 
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吧?如果是不是应该给外面提供一个接口用来取得呢?

至少说的那三个方法就正常写呗,没什么可提的。。。
------解决方案--------------------
如果数的个数是偶数的话,那中间位置的数是哪个呢
------解决方案--------------------
怎么没有定义一个数组或者List来存储这些数呢?
------解决方案--------------------
是要这些方法的具体实现还是什么
up帮顶
------解决方案--------------------
private int n; //输入数的个数
private double max;//输入数的最大数
private double min; //输入数的最小数

三个属性我感觉应该是也要对外公开的吧?不应该设为private吧?如果是不是应该给外面提供一个接口用来取得呢?
-----------------------
属性还是不要对外公布的好,不安全...

------解决方案--------------------
每人觉得属性没公开的必要,公开还违背了面向对象的一大特性,封装!
------解决方案--------------------
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()+ ", ");
}
}
}
------解决方案--------------------
一个数的个数,一个最大数,一个最小数,不就三个数?
你的方法要求的取数又是什么意思呢?
------解决方案--------------------
不能用数组,但是可以用List,比如ArrayList。
排序的话,你可以自己写个函数排序,也可以用Collections.sort()方法排序。
之后取中间元就简单了,ArrayList.size()可以获得长度,不管是奇数也好,偶数也好,都很容易取得中间元。