2011-06-28 20 views
0

即時製作一個Java移動應用程序來顯示人們的報價。它將有超過18000個報價,按人物和報價分類。我的應用程序的用戶將輸入該人的人員編號和報價編號。 (兩個單獨的數字)。我應該使用嵌套開關的情況下還是if else語句?還是有另一種方法來做到這一點?也許不是每個報價字符串,使用引號(每人1個文本文件)的文本文件n使用一個開關的情況下,讓人ñgoto線路號碼。該人的文本文件的文件?哪一種方法會更快速地移動它正在運行的移動設備?提前致謝! :)java-18000多個案例,我應該使用switch還是if語句?

+9

你有沒有想過使用數據庫? – forsvarir

+1

嘗試使用字典類。如果你有限制不使用數據庫 –

回答

1

您可以加載點播報價文件和緩存他們的報價在同一個會話中使用,例如:

public class Quotes { 
    Hashtable cache; 

    public Quotes() { 
     cache = new Hashtable(); 
    } 

    public String getQuote(int person, int quoteNumber) { 
     if (!cache.containsKey(new Integer(person))) { 
      try { 
       loadQuoteFile(person); 
      } catch (IOException e) { 
       // Invalid person/file - do what you will 
      } 
     } 

     String[] quotes = (String[])cache.get(new Integer(person)); 
     if (quoteNumber < 0) return quotes[0]; 
     if (quoteNumber >= quotes.length) return quotes[quotes.length - 1]; 
     return quotes[quoteNumber]; 
    } 

    private void loadQuoteFile(int person) throws IOException { 
     String[] quotes; 
     // Load the file 
     // Parse into strings using linebreaks as the delimiter 
     cache.put(new Integer(person), quotes); 
    } 
} 

你可能需要的文本文件的做法,無論如何,除非你是熱衷於寫作或爲包含所有報價數據的類生成代碼 - 例如一個String[][],人名和報價編號爲索引,另一個String []包含人名 - 如果您有足夠的內存可用,這是另一種選擇。從這樣的結構中獲取特定的引用僅僅是使用給定的數字asarray索引(隨着執行範圍的變化而變化)。

+0

謝謝大家喲!這已經有很多幫助!我不想要數據庫..文件n緩存方法聽起來很完美! '將在我得到它工作後立即在這裏發佈..非常感謝你..:D – pinky

3

都沒有。

請使用數據庫!如果你有數字(id!),你可以通過索引快速找到這種報價。

+0

是的,Java-ME上不存在傳統的關係型數據庫(因爲這個問題被標記)... – funkybro

+0

你是否在暗示if-per-quote?請說你不知道。使用基於文件的數據庫會限制你索引的可能性,當然,但仍然WAY更好,那麼假設/切換 – Nanne

7

切換,但這不是最好的方法。 你應該使用一個數據庫,但如果你不與comforable編寫程序來創建每個人的文件,然後列出報價,如這裏britneyspears.txt

克里斯蒂娜和我是朋友,不管媒體所構成的。

不要把我當成一個小女孩。

英格蘭是我最喜歡的地方之一。粉絲們太瘋狂了。

每天晚上,我都要讀一本書,這樣我的思想纔會停止思考我所強調的事情。

讓程序從目錄和列表名稱中查找文件,然後可以將文件加載並拆分爲字符串。儘管使用數據庫更可取,但速度要快得多。