繁体   English   中英

最适合上传独特PDF的数据结构

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM