目標: 使用Collection.sort 來進行ArrayList (List) 的排序,需實作 Comparator。

以下為一個實際的例子,加入三個字串後,依照字串長度由長排到短。

 

public class test1 
{
	private static void test()
	{
		ArrayList string = new ArrayList();
                //加入三個字串
		string.add("a");
		string.add("bb");
		string.add("ccc");
                //將字串由長排到短, 第一個參數是擺要排序的物件,第二個參數則是實作 Comparator 的函數
		java.util.Collections.sort(string, new compare());
	}
	public static void main(String args[])
	{
		test();
	}
}

上面程式碼所使用到的 compare 函數如下:

public class compare implements Comparator
{
	public int compare(Object arg0, Object arg1) 
	{
		String str1 = arg0.toString();
		String str2 = arg1.toString();
		if(str1.length()>str2.length())
		{
                        //回傳-1代表把元件向前排, 代表str1排在str2的前面
			return -1;
		}else
		if(str1.length()<str2.length())
		{
                        //回傳1代表把元件向後排, 代表str1排在str2的後面
			return 1;
		}else
		{
			return 0;
		}
	}
}
arrow
arrow

    葛瑞斯肯 發表在 痞客邦 留言(0) 人氣()