今天面试中有一题是这样描述的,将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了,看来以后非常有必要使用记事本了。

 

Feedback

# re: 记录一道过滤int数组中相同数据并按从小到大的排序的试题  回复  更多评论   

2009-01-02 11:39 by 海盗
恩恩 有同感啊

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 54, comments - 143, trackbacks - 0, articles - 0

Copyright © flustar