- 浏览: 148375 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
MCQCM:
你的代码有个小问题,不信,你试试abceaefkbn。正确如下 ...
求字符串的最长不重复子串 -
cherry728:
如果服务由多个操作组成,那要怎么办呢。这些操作是需要顺序执行的 ...
一起学BPEL实例教程一(原创) -
zoukailiang0:
请问上面代码中的type变量是怎么获取的啊?我是用默认的pro ...
gef中的属性视图小结 -
我爱死了java:
楼主你好,看你的总结很感谢,不知道你可以把jaf-1_1-fr ...
axis1.4 使用笔记(1) -
nannan408:
ByteArrayOutputStream b ...
java clone方法的使用
题目比较基础,不是很难,但也有很多需要注意的地方,先看题目吧:
1.找出目录中最大的文件。(目录中可能会有子目录)
2.有两个大小分别为m,nL的容器,如何获得xL的水?
package others; import java.io.File; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; //找出目录中最大的文件 public class FileManager { Map<String,Long> fileMap=new HashMap();//保存文件的路径及对应的文件大小 public void getMaxSizeFile(String path){ File file=new File(path); if(file.isDirectory()){ bianli(file);//通过遍历把文件路径及对应大小保存到fileMap中 }else System.out.println("the path should be a directory!"); Long maxSize=0L;//文件最大值 List result=new ArrayList();//保存结果 ,最大的文件可能不止一个 for(Iterator it=fileMap.entrySet().iterator();it.hasNext();){ Entry en=(Entry) it.next(); Long size=(Long) en.getValue(); if(size>=maxSize){ if(size!=maxSize)result.clear();; maxSize=size; result.add(en.getKey()); } } for(Iterator it=result.iterator();it.hasNext();) System.out.println(it.next()); } private void bianli(File file) { // TODO Auto-generated method stub File[] files=file.listFiles(); if(files==null)return; for(File f:files){ if(f.isDirectory())bianli(f); else { fileMap.put(f.getAbsolutePath(), f.length()); } } } public static void main(String[] args) { // TODO Auto-generated method stub FileManager manager=new FileManager(); long start=System.currentTimeMillis(); manager.getMaxSizeFile("C:\\"); System.out.println("花费:"+(System.currentTimeMillis()-start)); } }
第一种思路是用一个map先把所有的文件名和大小保存起来,再从中找最大值,写的过程中就想到可以不用map,直接用一个中间变量保存最大值,效率会高些。但最后测试的结果表示,效率并没提高多少,当然空间肯定是节省了。
package others; import java.io.File; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; //找出目录中最大的文件 public class FileManager2 { Long max=0L; ArrayList result=new ArrayList(); public void getMaxSizeFile(String path){ File file=new File(path); if(file.isDirectory()){ bianli(file);//通过遍历把文件路径及对应大小保存到fileMap中 }else System.out.println("the path should be a directory!"); for(Iterator it=result.iterator();it.hasNext();) System.out.println(it.next()); } private void bianli(File file) { // TODO Auto-generated method stub File[] files=file.listFiles(); if(files==null)return; for(File f:files){ if(f.isDirectory())bianli(f); else { if(f.length()>max){ max=f.length(); result.clear(); result.add(f.getAbsolutePath()); }else if(f.length()==max)result.add(f.getAbsolutePath()); } } } public static void main(String[] args) { // TODO Auto-generated method stub FileManager manager=new FileManager(); long start=System.currentTimeMillis(); manager.getMaxSizeFile("C:\\"); System.out.println("花费:"+(System.currentTimeMillis()-start)); } }
第二题有很多需要注意的地方,可以看注释
package others; /** * 有两个大小分别为m,nL的容器,如何获得xL的水? 如4,3 2 */ public class WaterTest { private int i=1;//倒水次数记数 public boolean doWater(int m, int n, int x) { int left, right; if (x > m + n || (m == n && m != x)) { System.out.println("can't get " + x + "L water"); return false; } left = m;// M杯剩余水量 System.out.println(i+++":M杯倒满:" + m + "L水"); if (left == x) return true; right = n;// N杯空余空间 while (right > 0) { left = m - right;// 左边还剩多少水 System.out.println(i+++":从M杯倒" + right + "L水到N杯中,最后M杯中剩" + left + "L水"); if (left == x) return true; while (left > right) { System.out.println(i+++":把N杯中的水全问倒掉"); right = n; System.out.println(i+++":把M杯中剩下的" + left + "L水倒满N杯,M杯中还剩余水" + (left - n) + "L"); left = left - n; if (left == x) return true; } System.out.println(i+++":把N杯中的水全问倒掉"); right = n - left; System.out.println(i+++":把M杯中剩下的" + left + "L水倒到N杯中,N杯剩余空间" + right + "L"); left = m; System.out.println(i+++":M杯倒满:"+m+"L水"); // right=left<right?n-left:left-n;//右边还剩多少空间 if (n == (right + x)) return true; } return false; } public static void main(String[] args) { // 10,4,3 false // 4,3,2 true // 20,3,2 true //20,7,5 true WaterTest test=new WaterTest(); if (test.doWater(20,7,5)) { System.out.println("胜利完成!"); } else System.out.println("不能实现!"); } }
发表评论
-
求两数的最大公约数
2010-10-22 16:38 1167来源:编程之美2.7 问题:求两数的最大公约数 //求两个 ... -
1的数目
2010-10-22 14:23 828来源:编程之美2.4 题目:给定一个十进制正整数N,写下从1 ... -
寻找发帖“水王”
2010-10-22 13:28 1724来源:编程之美2.3 题目:该"水王"发 ... -
不要被阶乘吓倒
2010-10-22 11:40 1089来源:编程之美 2.2 题目:1.给定一个整数N,求N!末尾 ... -
Hibernate中HQL语句的一般写法
2010-07-14 15:02 1080这两天写了不少HQL语句,总结起来都是四步,在这四步的基础上加 ... -
java排序算法自己总结版本
2010-05-26 20:20 913差不多开始要找工作了,因此今天特意对排序算法进行了复习, ... -
Eclipse客户端程序中多线程的使用
2010-03-10 16:14 848Eclipse作为一个 ... -
java clone方法的使用
2010-01-20 13:59 1565这几天在编程的过程中突然发现自己对java的参数传递 ... -
字符串匹配算法学习
2009-12-21 21:13 9151.KMP算法 http://hi.baidu.com/ne ... -
java中判断一个字符串是否是一个整数的几个方法
2009-12-06 14:07 86961.使用类型转换判断 try { String st ... -
Java集合的Stack、Queue、Map的遍历
2009-12-05 14:58 3449一、Map的遍历 import java.util.Hash ... -
数组和列表之间的转换
2009-12-05 14:42 1674常用到,所以总结下,都是以字符串数组为例: 1.数组转换成列 ... -
List中toArray()方法要注意的地方
2009-12-03 15:51 2224今天为了把一个ArrayList直接转化为一个String数组 ... -
java字符串处理的一些总结
2009-11-19 10:49 11801.字符串首字母大写: String str = &qu ... -
爬虫种子
2009-11-14 10:44 1359最近几天用来爬虫的种子: http://www.webser ... -
java中集合类的使用
2009-09-28 15:32 686以下是几个与java中集合的使用相关的文章: 1.http: ... -
Java中删除目录和目录下所有文件
2009-09-13 10:43 1107public void del(String filepath ... -
Java中static、final用法小结
2009-09-11 17:50 1510一、final 1.final变量: ... -
常用的一些名字空间
2009-07-18 10:41 785xmlns:SOAP-ENV="http://sch ... -
Map.Entry的使用
2009-06-16 12:29 919你是否已经对每次从Ma ...
相关推荐
用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题
这是收集的用友软件的复试笔试题,题目收集不易,有些答案已经给出,有些还是要靠大家自己总结。另外项目培训中心的题是不会给出标准答案的,仅供参考。
用友的软件开发 实习生笔试题 希望能对大家有用。 请简述什么是时间复杂度,描述你所知道的排序算法及其时间复杂度.
用友软件公司笔试题B卷C#面试题 用友软件公司笔试题B卷C#面试题
JAVA试卷-NC用友软件工程师笔试题.pdf
2013用友笔试题,本人亲自参加并照相,希望对大家有帮助
用友nc事业部的笔试题 .docx
神州数码、中科软、用友、笔试题 笔试题集总
用友软件面试题
用友 校园招聘 笔试题(java方向)
用友nc事业部的 笔试题,我去面试过所以知道,喜欢的来下,希望可以帮助大家。
北京瑞有科技有限公司(原用友软件工程有限公司)招聘面试书面题 2009年10月
大数据面试笔试资料-56家互联网大公司面试笔试题资料整理汇总: hive面试.doc 京东.jpg 笔试题1.docx 笔试题10.jpg 笔试题11.JPG 笔试题12_搜狐 笔试题13_九章云极科技有限公司 笔试题14_北京东方国信科技股份有限...
这是一套用友ERP财务软件的练习题,主要针对总账、固定资产、报表的综合练习。
用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf用友软件应聘笔面试题.pdf
U8实务练习题 欢迎大家使用用友软件 根号为大家服务
用友软件T1批发零售版演示.ppt文件。
华为笔试题华为笔试题华为笔试题华为笔试题华为笔试题