J2ME向量的Hashtable查询

时间:2010-05-24 16:10:32

标签: java vector hashtable java-me

我是J2ME的新手。我有一个名为“打印出来的位置”的向量

[{X=NM0001-1, ccc=1327_10}, 
{X=NM0001-2, ccc=1329_10}, 
{X=NM0001-3, ccc=691_10}] 

当我把System.out.println(位置); 我设置“X”,“ccc”是键。 在我的程序中,我想查询“ccc”的某个值是什么是“X”值。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要像这样构建数据吗?

有几件事需要考虑:

  • 对于ccc的每个值,只有一个关联值X?
  • Vector中的项目顺序是否重要?
  • 数据结构的内容是静态的,即您是在程序执行期间向结构添加数据,还是在启动时写入一次?
  • 您是从结构中删除数据吗?

如果关联值是唯一的,您可以将数据保存在单个Hashtable中,并将ccc值作为键,然后检索特定键的值是微不足道的。如果键的顺序很重要,您可以维护单独的键向量。

否则你必须遍历Vector,从ccc键的每个Hashtable中检索值,如果匹配你的搜索值,则检索X键的值作为结果。像这样:

for ( int i = 0; i < locations.size( ); i++ ) {
    Hashtable ht = (Hashtable) locations.elementAt( i );
    if ( key.equals( ht.get( "ccc" ) ) ) {
        System.out.println( "Value for key " + key + "=" + ht.get( "X" ) );
    }
}