java中布尔存在和哈希表的时间复杂度

java中布尔存在和哈希表的时间复杂度,java,hashtable,time-complexity,java-io,Java,Hashtable,Time Complexity,Java Io,我使用布尔存在来检查目录中是否存在文件。我想知道这个方法的时间复杂度,这里有一些代码 File fil = new File(StoreFolder + "\\"+FileData); boolean exists = fil.exists(); if (!exists) { //DO SOMETHING } else { StoreVirus[(int)TotalVirusCount]=StoreFolder;

我使用布尔存在来检查目录中是否存在文件。我想知道这个方法的时间复杂度,这里有一些代码

 File fil = new File(StoreFolder + "\\"+FileData); 
    boolean exists = fil.exists(); 
    if (!exists)
    {

    //DO SOMETHING    
    }
    else
    {
    StoreVirus[(int)TotalVirusCount]=StoreFolder;
    TotalVirusCount++;
    System.out.println("path:" +StoreFolder +" "+FileData);
    }
另外,我正在比较两个字符串数组,因为我正在使用下面的代码,我希望这段代码的时间复杂度也,请提供一些帮助,提前感谢

      Hashtable hash=new Hashtable();
      for(int i=0;i<counter;i++){
      hash.put(plist[i], 0);
      }
      for(int j=0;j<totalup;j++){
          if(hash.containsKey(upd[j])){
          hash.put(upd[j], 1);
          }
          else{
          hash.put(upd[j],0);
          }
     Enumeration e=hash.keys();
     while(e.hasMoreElements()){
     String tr=(String) e.nextElement();
     if(hash.get(tr)!=0)
     {
     System.out.println(tr);
     jTextArea1.insert(tr +"\n", 0);
     }

                             }

      }
Hashtable hash=new Hashtable();

对于(int i=0;i而言,第一部分的运行时间为
O(1)
,第二部分的运行时间为
O(n^2)

应该注意的是,这些运行时是“最坏情况”运行时


平均而言,第二个算法的运行时间将是
O(n*k)

哈希表
枚举
?没有泛型?这段代码到底有多旧?这是Java 7吗?如果是,不要使用
文件
,使用
路径
文件
@fge这至少是Java 1.4.2或更旧。你可以通过阅读根本没有泛型的
哈希表
,注意到这一点。我不确定这个问题非常适合我SO@Blaine评论更新,谢谢。它将是O(N^2)由于
hash
中的元素数与
plist
相同。但是,通过在
while
循环中读取代码,这是一种很简单的方法。@RSverma它在网上。我刚刚搜索了哈希表的时间复杂度,发现:。注意Java中的
Hashtable
类是哈希表数据str的实现结构。由于您使用的是Java 7,您可能希望使用由
HashMap
支持的
Map
。您能解释一下它是如何实现的吗?哈希表的运行时间为O(1)因为它直接调用您要查找的元素,因为它有一个键/值。for循环假定您必须迭代每个元素才能得到答案。嵌套循环时,您的运行时间会呈指数增长。这是您应该认真阅读的内容。