Posted on 2008-03-22 17:03
flustar 阅读(1236)
评论(1) 编辑 收藏 所属分类:
想说的话
今天面试中有一题是这样描述的,将int m[] 数组中相同的数据过滤掉只留一个,并把过滤后的数据放入一个新的数组int n[]。例如int m[]={1,1,5,3,5,2,4,4,2,3},过滤后并排序后,n[]={1,2,3,4,5}。这道题本来是很简单的,我的思路是把m数组中的数据先放入hashset中,因为hashset有过滤重复元素的功能,可是我一时想不起来怎么把它怎么转换成int [],结果我只写了一个排序算法在试卷上。都怪自己平时太依赖IDE了,这样常见的集合类里面具体有那些方法我从来都没认真去记,只知道在什么在什么情况下该使用哪个集合类,然后借助eclipse一点一点的方法都列出来了,完全不用去记。但是在考试中既没有eclipse更没有JDK文档,只有一张可以答题的白纸,一个简单到不能再简单的问题都让我犯晕,哎,看来以后确实应该好好用用记事本了。我回去以后在电脑上简单的敲了几下就搞定了,下面是我对道题的解答:
import java.util.HashSet;
/** *//**
*
* @author <a href="mailto:flustar2008@163.com">flustar</a>
* @version 1.0
* Creation date: Mar 20, 2008 11:34:08 PM
*/
public class Test {
public static int [] filterAndsort(int m[]){
HashSet hs=new HashSet();
for(int i=0;i<m.length;i++){
hs.add(m[i]);
}
Object t[]=hs.toArray();
int n[]=new int[t.length];
for(int j=0;j<t.length;j++){
n[j]=(Integer)t[j];
}
//------------------------------//
for(int x=0;x<=n.length-2;x++){
for(int y=x+1;y<=n.length-1;y++){
if(n[x]>n[y]){
int temp=n[x];
n[x]=n[y];
n[y]=temp;
}
}
}
return n;
}
public static void main(String args[]){
int m[]={1,1,5,3,5,2,4,4,2,3};
int n[]=filterAndsort(m);
for(int i=0;i<n.length;i++){
System.out.println(n[i]);
}
}
}
在试卷上编程的滋味实在是不好受,都怪自己太爱使用eclipse了,看来以后非常有必要使用记事本了。