2013年7月3日

[JAVA]ArrayList < Custom Object >,使用 indexOf 的方法。 (Override equals)

在 JAVA 的 ArrayList 中,indexOf 實在是非常便利的 method。

但是,如果放在 ArrayList 的 Element Object 不是 String、Integer 之類的的話。

想使用 indexOf,就必須 Override 該 Element Object 的 equals!


因為,在 ArrayList 的 indexOf 中,

用來比對物件是否等值的方法其實就是呼叫 Element Object 裡面的 equals。


以下範例:

//-------------------------------------------------------------------
import java.util.ArrayList;

public class test {

    public static void main(String[] args) {

        // 自訂的 Element Object。
        class Data_Cell
        {
            public int Data_1;
            public int Data_2;
   
            Data_Cell(int D1 , int D2)
            {
                Data_1 = D1;
                Data_2 = D2;
            }
   
            // 這裡要 Override 原本的 equals,好讓 indexOf 可以拿來用。
            @Override 
            public boolean equals(Object o)
            {
                Data_Cell t = (Data_Cell) o;
    
                if( !(Data_1 == t.Data_1 && Data_2 == t.Data_2) )
                    return false;
                else
                    return true;
            }
        }
  
        // 宣告 ArrayList。
        ArrayList <Data_Cell> Data = new ArrayList <Data_Cell> ();
  
        // 加入一些測試用的資料給 ArrayList。
        Data.add(new Data_Cell(1 , 2));
        Data.add(new Data_Cell(3 , 4));
        Data.add(new Data_Cell(5 , 6));
  
  
        // 想搜尋的物件
        Data_Cell temp_Cell = new Data_Cell(3 , 4);
  

        // 使用 indexOf 搜尋。
        int Add_Index = Data.indexOf(temp_Cell);
  
        // 顯示出結果。
        System.out.print(Add_Index + "\n");
  
        return;
    }

}
//-------------------------------------------------------------------

結果會印出 1 !

2013年5月10日

[人生]過去的選擇,不應該後悔

最近看著一群很熟的學長即將畢業,
想想自己也差不多該思考一下未來的事情,
避免自己出社會之後成為一個廢人。

卻在思考的過程中,遇到很多人生等級的選擇。

雖然,都已經做出選擇,但心裡總是存在一絲不安。


最近仔細想想,沒理由後悔。

因為,我永遠沒辦法驗證「如果回到過去,選擇另一個選項,會不會感到後悔?」。

所以,對這種無法驗證其正確性的選擇,後悔是沒有意義的。

2012年12月7日

[文明]古文的意義

人與人之間常常會因為年齡差距而有代溝。
而解決代溝的其中之一個方法就是讀古文。(如圖)





而這也暗示 → 蘊含道理的古文才有學習的意義。(文以載道)




國中以來,一直覺得學習古文是件沒有意義的事情。
古文難以解讀,古代的文化與現在相去甚遠,有些概念已經不適合現代人。

多次與國文老師討論這個問題,但是 ......

國中的國文老師只會說:「不然你不要讀啊。」
基於升學主義,國中國文老師囂張的說了這種話。

高中的國文老師很認真,提出「古文是藝術」、「古文能提升素養」之類的觀點
但這些理由無法解決所有問題,
「古文是藝術」→ 地球上還有很多藝術,為什麼我們指定學古文?
「古文能提升素養」→ 公民與社會類的課程顯然更能提升素養,沒理由選擇困難學習的古文。


直到上大學,加入了社團,才漸漸體會古文的意義。

在社團裡,隱約感覺到,每個年級的同學,都有其特殊文化。

推測其原由,可能是:
→ 同儕影響很大:

    而同年的人互相影響自然形成自己的文化。

→ 經歷的事情不同:
    儘管只差一兩年,經歷的事情可能就會有所差異。
    (假設,當我高三的那年,台灣流行起一件事情 A,
     但是因為我要準備指考,所以沒跟上A 流行。
     而跟我差一兩年的那些人可能就會在 A 流行之中。
     我們之間就會有所差異。)


如果雙方的年齡差了幾十年,這種文化差距的影響就會非常巨大,
而造成溝通上的困難,稱之為「代溝」。

而解決這些代溝的方法,其中一個,就是讀古文。

2011年9月13日

[生活]零樓

現今世人稱呼為「一樓」的地方,其實應該是「零樓」。。
「一樓」與「地下一樓」之間沒有「零樓」,不合理。



「爬上樓」這個動作其實就是「+1樓」的意思。
「爬下樓」則是「-1樓」。
現今世人稱呼的「一樓」實際上並不需要「爬上樓」即可到達,
所以,正確的說法自然是「零樓」。。


向下爬一層,稱之為「負一樓」也就是「地下一樓」。
向上爬一層,稱之為「正一樓」簡稱「一樓」。
而不用爬即可到達的,應當為「零樓」。。