Posted on 2008-03-22 17:03
flustar 閱讀(1250)
評(píng)論(1) 編輯 收藏 所屬分類:
想說(shuō)的話
今天面試中有一題是這樣描述的,將int m[] 數(shù)組中相同的數(shù)據(jù)過(guò)濾掉只留一個(gè),并把過(guò)濾后的數(shù)據(jù)放入一個(gè)新的數(shù)組int n[]。例如int m[]={1,1,5,3,5,2,4,4,2,3},過(guò)濾后并排序后,n[]={1,2,3,4,5}。這道題本來(lái)是很簡(jiǎn)單的,我的思路是把m數(shù)組中的數(shù)據(jù)先放入hashset中,因?yàn)閔ashset有過(guò)濾重復(fù)元素的功能,可是我一時(shí)想不起來(lái)怎么把它怎么轉(zhuǎn)換成int [],結(jié)果我只寫了一個(gè)排序算法在試卷上。都怪自己平時(shí)太依賴IDE了,這樣常見的集合類里面具體有那些方法我從來(lái)都沒認(rèn)真去記,只知道在什么在什么情況下該使用哪個(gè)集合類,然后借助eclipse一點(diǎn)一點(diǎn)的方法都列出來(lái)了,完全不用去記。但是在考試中既沒有eclipse更沒有JDK文檔,只有一張可以答題的白紙,一個(gè)簡(jiǎn)單到不能再簡(jiǎn)單的問題都讓我犯暈,哎,看來(lái)以后確實(shí)應(yīng)該好好用用記事本了。我回去以后在電腦上簡(jiǎn)單的敲了幾下就搞定了,下面是我對(duì)道題的解答:
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]);
}
}
}
在試卷上編程的滋味實(shí)在是不好受,都怪自己太愛使用eclipse了,看來(lái)以后非常有必要使用記事本了。