發表文章

[Python] Python中的label continue/break語法?

是的, Python中沒有 labeled continue/break 語法 。此語法提議 在PEP-3136中已被駁回 ,理由主要是這會讓Python程式碼更加複雜,且可能被濫用的情況會比合適使用的情況更多,而且一旦加入成為語言的功能將是永久的,因此在沒有必須加入它的需求之前,予以駁回。 那麼,有多重迴圈使用需求的地方該怎麼辦呢? Python官方建議我們將程式碼作重購(refactoring);把迴圈中可能根據條件進行處理的部分寫成函數(也就是本來會被包含在迴圈中的程式碼),並以函數中的 return 代替 labeled continue/break 中的 continue/break 功能 。 如此一來,即可根據回圈中的簡單if-else判斷,來決定是否執行某段程式碼了 。 p.s.: 怎麼想一想好像還挺有道理的?把有labeled continue/break的語言當笨蛋就是了@@?

[MySQL] 要使用多個資料表儲存,或是用一個資料表儲存大量資料?

 基本上一個MySQL資料庫中可建立的資料表數目是沒有限制的,但事實上其數目還是會受限於所使用的檔案系統的限制,例如一個目錄下所能建立的檔案個數等。   若考慮資料表中資料的多寡來考慮是否要將其分為較小的資料表,只要資料表中的資料只有 數百萬筆 左右,只要搭配合適的索引(index)欄位規劃以及較快速的表格引擎(例如MyISAM),那存取速度會還是可接受的。  當資料成長至千萬筆以上時,則可再視情況將資料表做切割。

[Android] 設計以格狀為主的排版時,使用 GridView 或是 TableLayout 較好呢?

GridView 的功能類似 ListView,其所顯示的資料來自與其關連的 ListAdapter 物件,難以單純的用xml排版檔案就指定所繪元件的細節。TableLayout 則可以顯示任何所指定的 View,並可在xml排版檔案中就直接指定要繪製的元件內容。 因此,當每個格子中要繪製的東西較簡單(例如只是根據資料繪製出特定ImageView與TextView),並且這些東西邏輯上可視為同一群組來編輯時,可選擇GridView。若所繪的內容較複雜,或者功能要求是以"排版"為主時,可選擇TableLayout。 簡言之,放的東西簡單,沒有排版需求,用GridView;例如日曆畫面。放的東西複雜,或有排版需求時,使用TableLayout;例如一般非單欄選單的製作。

[Android] 想在fullscreen上畫出按鈕,應該使用ImageButton還是ImageView呢?

應該使用ImageButton,因為ImageButton不是Button的子類別而是ImageView的,因此所有可在ImageView上用到的好處在ImageButton上都可以使用得到。

[Database] Derby使用筆記

Starts up the Derby engine Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Creates and connects to a database Connection conn = DriverManager.getConnection("jdbc:derby:" + dbName + ";create=true"); // 若要自行手動控制transaction, 要將JDBC中預設的autocommit功能關掉. conn.setAutoCommit(false); Creates a table // 可針對該資料庫重複使用的Statement物件 Statement stmt = conn.createStatement(); // 建立名為location的資料表 stmt.execute("CREATE TABLE location(num int, addr varchar(40))"); Inserts data // 當重覆執行SQL敘述時, 建議使用PreparedSstatement(可以不需要每次都recompileSQL敘述) PreparedStatement pStmt = conn.prepareStatement("INSERT INTO location VALUES(?, ?)"); pStmt.setInt(1, 1956); pStmt.setString(2, "Min-Sheng East Road"); pStmt.executeUpdate(); Updates data PreparedStatement psUpdate = conn.prepareStatement("UPDATE location SET num=?, addr=? where num=?"); psUpdate.setInt(1, 300); psUpdate.setString(2, "Cheng-Guong ...

[Java] 何時該使用LinkedList? (與ArrayList的效率比較)

根據網路上的 這篇測試 顯示出了以下結果: 多次建立並刪除第一個元素: ArrayList 花費 4346 毫秒 LinkedList 花費 0 毫秒 多次建立並刪除串列中的中間元素: ArrayList 花費 2104 毫秒 LinkedList 花費 26728 毫秒 多次建立並刪除串列的最後一個元素: ArrayList 花費 731 毫秒 LinkedList 花費 1242 毫秒 因此大概可以得出一個結論:在Java語言中,不管你想實作怎樣的資料結構, 為了效率的考量,不要使用LinkedList 。

[Java] HashTable和HashMap的不同

HashTable和HashMap的不同主要有四種 一、 HashTable 是繼承java.util.Dictionary HashMap 是繼承java.util.AbstractMap Dictionary 是舊的class, 【DOC】NOTE: This class is obsolete. New implementations should implement the Map interface, rather than extending this class. java.util.AbstractMap 已經implements Map Interface,因此繼承它的class 只需要實作它的method就可以實作出需要的Map (例如get,put,entrySet method) 可參:http://java.sun.com/j2se/1.4.2/docs/api/java/util/AbstractMap.html java.util.Dictionary 並沒有去Implements Map Interface,HashTable是另外去實作Map interface,也因此HashTable能被算在Java Util Framework中。 ...