[英]Most suitable data structure for unique PDF uploading
我曾在大学里分配过一份作业,其中包括将PDF文档有效地存储在PDF存储中,并且仅存储一次(通过多次上传相同文件不会重复任何内容)。
该方法是以下store(String title, File pdfFile)
范例1:
"Fast Cars", fastcars.pdf
"Even Faster Cars", fastcars.pdf
"Not So Fast Cars", cars.pdf
"Slow Cars", slowcars.pdf
预期结果:它的大小应为3,其中包含以下fastcars.pdf, cars.pdf and slowcars.pdf
范例2:
"Fast Cars", fastcars.pdf
"Even Faster Cars", fastcars.pdf
"Fast Cars", sportscars.pdf
"Even Faster Cars", sportscars.pdf
它的大小应为1,并且仅包含sportscars.pdf
我的想法是对pdf内容进行哈希处理,并可能使用HashMap将内容摘要哈希与一个随机整数映射,然后再将其映射到PDF标题?
棘手的部分是试图满足示例2。
您将为这个问题推荐什么样的数据结构以提高效率?您将采用哪种方法?
提前致谢
我接受了控制台输入..
测试用例#1 i / p:
FastCars fastcars.pdf
EvenFasterCars fastcars.pdf
NotSoFastCars cars.pdf
SlowCars slowcars.pdf
o / p:
slowcars.pdf
fastcars.pdf
cars.pdf
测试用例#2
i / p:
FastCars fastcars.pdf
EvenFasterCars fastcars.pdf
FastCars sportscars.pdf
EvenFasterCars sportscars.pdf
o / p:
sportscars.pdf
公共静态void main(String [] args)引发异常{
Map<String,String> map1=new HashMap<String,String>();
Map<String,String> map2=new HashMap<String,String>();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i<4;i++)
{
String inpt[]=br.readLine().split(" ");
String tag=inpt[0];
String fileName=inpt[1];
map1.put(tag,fileName);
map2.put(fileName, tag);
}
Set<String> keySet=map1.keySet();
Iterator it=keySet.iterator();
while(it.hasNext())
{
String key=(String)it.next();
if(map2.containsKey(map1.get(key)))
{
System.out.println(map1.get(key));
map2.remove(map1.get(key));
}
}
}
每个合格的PDF文件都有一个唯一的ID作为其元数据的一部分。 您可能只想使用该字符串作为文件名。 大多数PDF库工具都允许轻松访问此元数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.