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循环假定您必须迭代每个元素才能得到答案。嵌套循环时,您的运行时间会呈指数增长。这是您应该认真阅读的内容。