2010-11-08 93 views
0

我正在開發基於application.In它擺動,有一個JTable.The數據在JTable中填充有兩種ways-Java的搜索字符串

  1. 用戶選擇一個文件(文件選擇等)。應用將數據加載到JTable中。
  2. 應用程序輪詢某些網絡參數上的消息。當消息到達時,它將加載到JTable中。

我現在想給搜索選項user.When他類型的JDialog框中任意字符串,應用程序應該專注於特定行,其中字符串匹配以table.When表的行數據填充,TableModel的變化每行都是矢量,所以表是矢量矢量。 什麼樣的數據結構適合這個?循環遍歷每一行向量和搜索?

回答

2

搜索是在桌子的模型上完成的 - 您是矢量的矢量。如果您在進行自由文本搜索(並且不想計算索引),那麼您的數據結構是合適的,因爲如果它包含搜索字符串或匹配模式,則必須測試每個單元格。基本上你想要做這樣的事情:

List<List<String>> tableModel = getTableModel(); // some magic at the beginning 
String searchString = getSearchString(); 

for (List<String> row:tableModel) { 
    for (String cell:row) { 
    if (cell.contains(searchString)) { 
     // We've found one cell that contains the search string 
    } 
    } 
} 
+0

Thanks.Thats我想do.But想知道,如果在表中的行沒有更好的way.Number會有所不同,從1到MAX-200。每行有6個字段。 – Chirota 2010-11-08 12:34:57

+0

@Chirota - 如果你只需要訪問1200個單元,不關心性能。對於較大的模型,可以考慮對輸入數據進行索引,並使用像lucene這樣的庫,但這在您的場景中付出了很多努力並且不值得。 – 2010-11-08 12:55:00

+0

如果只運行多達1200次比較,我不會擔心效率問題。 – 2010-11-08 12:57:25