Posted on 2008-03-22 17:03
flustar 閱讀(1250)
評論(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了,看來以后非常有必要使用記事本了。