2010-11-03 37 views
0

我開始在開發Android,並決定去了一個原生Java語言在Java(Android)語言中是否有類似Delphi中的TStringList?

當開始使用新的語言時,我傾向於創建一個具有相同名稱的代碼創建例程庫,它執行與我已擁有的庫中相同的功能。

F.i.在我的Classic Asp庫中,我有一個IntToStr()...函數,它相當於Delphi的IntToStr(),儘管我知道VBScript不需要這樣的函數 - 它使我在不同語言中的代碼更加可讀並因此更容易在語言之間切換。

德爾福背景的到來,我有很多的德爾福庫中的代碼,它使用TStringList中類。

Java中有什麼等價物嗎?或者你會如何解決這個問題?

+0

'TStringList'是如此多才多藝,也很少有人需要*所有*其能力一次。它可以將對象與其每個字符串條目相關聯。它可以使用自定義比較函數進行排序。它可以管理「name = value」字符串。它可以靜靜地忽略重複的條目,或引發異常。它可以在任意位置插入和刪除條目。它可以保持自己的排序,或者它可以保持原始的插入順序。如果您告訴您需要使用哪些功能,則更有可能獲得最能滿足您需求的Java類的建議。 – 2010-11-03 13:33:06

+0

@Rob Kenndy:按照原始順序或排序順序的名稱=值對,必須可以刪除,替換和插入值。我還將TSTringList分類爲在Object屬性中存儲一個整數 - 您需要多少次才能計算某些內容,或者存儲可以由整數表示的內容,並將其與字符串值相關聯,這是非常驚人的。 – Edelcom 2010-11-03 17:12:40

回答

1

這是你所需要的:

org.apache.commons.collections.map.ListOrderedMap

2

它是一個簡單的字符串列表嗎?如果是的話,請使用泛型代替:

LinkedList<String> myStrings = new LinkedList<String>(); 
myStrings.add("hello"); 
String s = myStrings.get(0); 
+0

它實際上只是一個帶有一些好幫手程序的字符串數組。 – 2010-11-03 14:50:37

4

delphi StringList在我看來像一個鍵/值對列表。 Java具有用於鍵/值對集合的結構(Map),但實現TreeMapHashMap不保留鍵的插入順序。一個良好的開端一個俗Java數據類型可以是:

public class TStringList { // unconventional Java name, but you like to keep the delphi names 
    private class Entry { 
    String key; 
    Object value; // to keep it flexible 
    } 
    private List<Entry> entries = new ArrayList<Entry>(); 

    // add some constructors 

    // implement methods of delphis StringList 
} 

(注:短線沒有實現JCA接口(如List),因爲此類旨在模仿德爾福類型,而不是作爲一個集合)

0

我懷疑有一個確切替代TStringList,因爲它非常靈活,並不對應於一個確切的數據結構類在Java容器 - 實際上大多數TStringList的功能必須使用一些其他類。 兩年前我在Java中實現了一個TStringList對象。 Java中有能力的類可以幫助你。我不知道我是否還有這個來源,只是一個實驗。

相關問題