java文件及文件夹过滤器使用样例

//内容一:文件过滤器(判断文件是否可读过滤)
import java.io.File;
import java.io.FileFilter;
public class MyFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
if(pathname.canRead()){
return true;
}
else{
return false;
}
}

}


//内容二:文件名过滤器(判断文件名以“java”结尾)
import java.io.File;
import java.io.FilenameFilter;
public class MyFilenameFilter implements FilenameFilter{

@Override

public boolean accept(File dir, String name) {

if(name.endsWith("java")){

return true;

}

else{

return false;

}

}

}



//主函数调用

public static void main(String[] args) {

File file = new File("G:/");

String[] fileNameList = file.list(new MyFilenameFilter());

for(String s:fileNameList){

System.out.println(s);

}


System.out.println("======================================================");

File[] fileLsit = file.listFiles(new MyFileFilter());

for (File f : fileLsit) {

System.out.println(f.getAbsolutePath());

}

}



布隆过滤器是一种高效的数据结构,用判断一个元素是否存在于一个集合中。它通过使用多个哈希函数和位数组来实现。 在Java中,可以使用第三方库Guava提供的BloomFilter类来使用布隆过滤器。下面是一个使用样例: ```java import com.google.common.hash.BloomFilter; import com.google.common.hash.Funnels; public class BloomFilterExample { public static void main(String[] args) { // 创建一个布隆过滤器,设置期望插入的元素数量和期望的误判率 BloomFilter<String> bloomFilter = BloomFilter.create(Funnels.unencodedCharsFunnel(), 1000, 0.01); // 向布隆过滤器中添加元素 bloomFilter.put("apple"); bloomFilter.put("banana"); bloomFilter.put("orange"); // 判断元素是否存在于布隆过滤器中 System.out.println(bloomFilter.mightContain("apple")); // true System.out.println(bloomFilter.mightContain("banana")); // true System.out.println(bloomFilter.mightContain("orange")); // true System.out.println(bloomFilter.mightContain("grape")); // false } } ``` 在上面的样例中,首先创建了一个布隆过滤器,设置了期望插入的元素数量为1000,期望的误判率为0.01。然后通过`put`方法向布隆过滤器中添加元素。最后使用`mightContain`方法判断元素是否存在于布隆过滤器中。 需要注意的是,布隆过滤器是一个概率性数据结构,存在一定的误判率。因此,在判断元素是否存在时,可能会出现误判的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值