求java多线程遍历目录的完整代码 , 能运行的那种目录结构为树型结构,用多线程不大好做,线程最多在前几层进行分割,比如每个目录下有两个目录,共5层,那么root目录下就能启用2个线程分别进行遍历,所以第二层就启动了2个线程进行遍历,加上主线程共三个线程,虽然这样做是可以做,但是要更具实际情况进行线程的规划,否则容易线程过多导致cpu超负荷,或者假死,再提一点,遍历目录不建议用递归来写 , 因为目录较多容易栈溢出 。
随手写了个,会有点bug就是关闭线程池的时候 , 还有就是有可能目录太多进入拒绝策略,这个东西 可以考虑使用令牌桶算法,或者计数器算法来做 。这里提供个简单的例子 。
public class TraverseUtil {
public static BlockingQueue blockingQueue = new LinkedBlockingQueue(100);
public static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(100,100,10, TimeUnit.SECONDS,blockingQueue);
public static void traverseFolder2(String path) {
File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (null == files || files.length == 0) {
System.out.println("文件夹是空的!");
return;
} else {
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夹:" + file2.getAbsolutePath());
threadPoolExecutor.execute(new Runnable() {
@Override
public void run() {
traverseFolder2(file2.getAbsolutePath());
}
});
} else {
System.out.println("文件:" + file2.getAbsolutePath());
}
}
}
} else {
System.out.println("文件不存在!");
}
}
public static void main(String[] args) throws InterruptedException {
traverseFolder2("C:\\Users\\a8932\\Desktop\\md");
}
}
java获取5个100-999之间的随机数并存入数组 * 遍历数组并打印参考代码
public class Test {
public static void main(String[] args) {
int[] ary = new int[5];//定义一个数组
int z;
for (int i = 0; iary.length; i++) {
z = (int)(Math.random()*900)+100;//z的范围[100~999]
ary[i] = z;//把随机数存入到数组中
}
//循环遍历,打印每一个元素
for (int i = 0; iary.length; i++) {
System.out.println("数组第"+(i+1)+"个元素是:"+ary[i]);
}
}
}
运行测试
数组第1个元素是:572
数组第2个元素是:922
数组第3个元素是:466
数组第4个元素是:262
数组第5个元素是:561
java中遍历list保存到字符串数组(详细代码)List list = new ArrayList();
list = yourList;//java中遍历99代码你自己的list数组
int listCount = list.size();
String[] strList = new String[listCount];
String tmp="";
for(int i=0;ilistCount;i++){
tmp +=(String) list.get(i)+",";
}
strList = tmp.split(",");
原理java中遍历99代码:循环把理list里的字符串变成一个长字符串并且用","号隔开java中遍历99代码,再利用split(",")方法 , 变成字符串数组 。
如何在java中实现List集合的遍历java中实现List集合的遍历有三种方法:
方法一:for-each循环
for(String attribute : list) {
System.out.println(attribute);
}
方法二:for循环
for(int i = 0 ; ilist.size() ; i++) {
system.out.println(list.get(i));
}
方法三:迭代器迭代
Iterator it = list.iterator();
while(it.hasNext()) {
【java中遍历99代码的简单介绍】System.ou.println(it.next);
}
关于java中遍历99代码和的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- postgresql没有快捷方式的简单介绍
- 新电脑使用前需要注意什么,新电脑需要干嘛
- wpsexcel怎么画图工具,wps excel 画图
- linux攻击命令 linux攻击ip
- wordpress分页怎样调用,wordpress文章分页插件
- 文本框的变化js,文本框值发生变化触发的事件
- 拖动控件vb.net 拖动控件就能开发的技术
- 苹果ipad怎么蓝牙到安卓手机,苹果ipad怎么连接耳机蓝牙
- 高维信诚sap,高维信诚 收购源讯