2010-11-08 95 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