zoukankan      html  css  js  c++  java
  • hash算法打散存储文件

    1.首先,为防止一个目录下面出现太多文件,所以使用hash算法打散存储

    举例代码:

                   int hashcode = filename.hashCode();//得到hashCode
    
                   int dir1 = hashcode & 0xf; //得到名为1到16的下及文件夹
    
                   int dir2 = (hashcode & 0xf0) >> 4; //得到名为1到16的下下及文件夹
    
                   String dir = savePath + "\" + dir1 + "\" + dir2; //得到文件路径

    从这段代码可以看出,如果一定要研究它的规律,那就要说说hashCode()方法,"直接定址”与“解决冲突”是哈希表的两大特点,

    不同的对象hashCode是有可能会相同的,并且hashCode方法是可以自己重写的,想让它有规律可以重写.重写我不会.就不瞎说了.

    如果只是使用hash算法打散存储,进行存取文件时,不用考虑hashCode,因为只要知道文件的名称,存和取所产生的dir1和dir2是一样的,文件的路径就可以确定.

    备注:

    对于hashCode()来说,无论何时,对同一个对象调用hashCode()都应该产生同样的值。

    哈希表的优点,就是把数据的存储和查找消耗的时间大大降低,用空间换时间,所以消耗适当大的内存,产生适当相同的hashCode再使用equals比较,来最快的查

    找才是它的目的

  • 相关阅读:
    MySQL之字符集
    PHP7.0-PHP7.3新特性与变更
    MySQL之开发规范
    php框架之thinkphp
    MySQL之日期时间类型
    php扩展之Yar
    XAMPP支持多PHP版本
    MySQL之执行流程
    RabbitMQ之php-amqplib使用
    (转)YAML最最基础语法
  • 原文地址:https://www.cnblogs.com/liaojie970/p/7054931.html
Copyright © 2011-2022 走看看