高手请进,求解一个Java面试编程题!
一个文本文件中约有10万多行的数据,每个数据占一行(数据为一个整数)。要求:统计出总行数,并找出出现次数最多的那个整数。   
 大家帮忙,关键是怎样找出出现次数最多的那个数 
------解决方案--------------------package test;   
 import java.io.*; 
 import java.util.ArrayList;   
 public class TestArray {   
 	/* 
 	 * public Object []getList(){//获得数组! try{ ArrayList list=new ArrayList(); 
 	 * BufferedReader in = new BufferedReader(new FileReader( "d:\\test ")); 
 	 * String str; if((str=in.readLine())!=null){ list.add(str); 
 	 *  } return list.toArray(); 
 	 *  
 	 * }catch(Exception e){ e.printStackTrace(); return null; } } 
 	 */ 
 	public Object[] getList() {// 测试数组 
 		String[] bb = new String[200]; 
 		for (int i = 0; i  < bb.length; i++) { 
 			bb[i] = String.valueOf((int) (Math.random() * 50)); 
 		} 
 		return bb; 
 	}   
 	public int getSize() {// 统计出总行数 
 		Object[] o = getList(); 
 		return o.length; 
 	}   
 	public int[] getMaxSameNo() {// 找出出现次数最多的那个数组   
 		Object o[] = getList();   
 		int no[] = new int[o.length]; 
 		for (int i = 0; i  < o.length; i++) { 
 			no[i] = Integer.parseInt((String) o[i]);   
 		} 
 		java.util.Arrays.sort(no);// 数组排序 
 		for (int i = 0; i  < no.length; i++) { 
 			System.out.println( "array[ " + i +  "]= " + no[i]); 
 		}   
 		int maxsum = getSum(no);// 出现次数最多的数到底出现了几次 
 		return getInt(no, maxsum);// 找出出现次数最多的那个数   
 	}   
 	public int getSum(int[] no) {// 此方法返回出现次数最多的数到底出现了几次! 
 		ArrayList sumlist = new ArrayList(); 
 		int sum = 1; 
 		for (int i = 0; i  < no.length - 1; i++) { 
 			if (no[i] == no[i + 1]) { 
 				sum++;// 相临两个相等计数器+1 
 			} else { 
 				// 不相等向集合里加入 
 				sumlist.add(sum); 
 				// 计数器复位继续比较 
 				sum = 1; 
 				continue; 
 			} 
 		} 
 		int max = 0; 
 		for (int i = 0; i  < sumlist.size(); i++) {// 此循环取出集合里最大的数! 
 			if (Integer.parseInt(sumlist.get(i).toString()) >  max) { 
 				max = Integer.parseInt(sumlist.get(i).toString()); 
 			} 
 		} 
 		return max; 
 	}   
 	public int[] getInt(int[] no, int a) {// 此方法返回出现次数为a的数组,可能有多个数字出现相同的次数的情况,所以返回的是数组 
 		ArrayList sumlist = new ArrayList(); 
 		int sum = 1; 
 		for (int i = 0; i  < no.length - 1; i++) { 
 			if (no[i] == no[i + 1]) { 
 				sum++; 
 			} else { 
 				if (sum == a) { 
 					sumlist.add(no[i]); 
 					System.out.println(no[i] +  "一共出现了 " + a +  "次! "); 
 				} else { 
 					sum = 1; 
 					continue; 
 				}   
 			} 
 		} 
 		int aa[] = new int[sumlist.size()]; 
 		for (int i = 0; i  < aa.length; i++) { 
 			aa[i] = Integer.parseInt((sumlist.get(i).toString())); 
 		} 
 		return aa;   
 	}   
 	/** 
 	 * @param args 
 	 */ 
 	public static void main(String[] args) { 
 		// TODO 自动生成方法存根 
 		TestArray test = new TestArray(); 
 		int count = test.getSize(); 
 		System.out.println( "一共有 " + count +  "条记录! "); 
 		int[] max = test.getMaxSameNo(); 
 		System.out.println( "出现次数最多的数为: "); 
 		for (int i = 0; i  < max.length; i++) { 
 			System.out.print(max[i] +  ", "); 
 		}   
 	}   
 } 
------解决方案--------------------  import java.io.File; 
 import java.io.RandomAccessFile; 
 import java.util.ArrayList; 
 import java.util.Arrays; 
 public class TestSum { 
 	public static void main(String[] args) throws Exception { 
 		// TODO Auto-generated method stub 
 		ArrayList <Integer>  dataSet = new ArrayList <Integer> (500) ;