Java编程实现用hash方法切割文件

 更新时间:2017年12月04日 09:08:49   作者:yan456jie  
这篇文章主要介绍了Java编程实现用hash方法切割文件,简单介绍了hash的概念,然后分享了使用方法示例,具有一定借鉴价值,需要的朋友可以了解下。

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

如果有大型数据文件(如每行为url或者ip或者单词等的),以G为单位的,处理的时候需先切分。普通切分方法直接根据数据条数切分,得到的每个文件大小相近。

但是有时需要将相同数据放到相同文件中。可以使用hash切分法。

public class Test { 
   
  static int HASHLEN = 1000; 
   
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String words [] = {"yes" ,"an" ,"go"}; 
    for(String word:words){ 
      int temp = hash(word.toCharArray()); 
      System.out.println(temp); 
    } 
  } 
  public static int hash(char[] word) { 
    int index = 0;  
    int i=0; 
    while(i<word.length) { 
      index += index * 31 + word[i];  
      i++; 
    }  
    return index % HASHLEN;  
  }  
} 

总结

以上就是本文关于Java编程实现用hash方法切割文件的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。

相关文章

  • springboot+EHcache 实现文章浏览量的缓存和超时更新

    springboot+EHcache 实现文章浏览量的缓存和超时更新

    这篇文章主要介绍了springboot+EHcache 实现文章浏览量的缓存和超时更新,问题描述和解决思路给大家介绍的非常详细,需要的朋友可以参考下
    2017-04-04
  • Java HashMap详解及实现原理

    Java HashMap详解及实现原理

    Java HashMap是Java集合框架中最常用的实现Map接口的数据结构,它使用哈希表实现,允许null作为键和值,可以存储不同类型的键值对,在Java中,HashMap被广泛应用于各种场景,如缓存、数据库连接池、路由器等,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Java基础学习之集合底层原理

    Java基础学习之集合底层原理

    今天带大家回顾Java基础的相关知识,文中对集合底层原理作了非常详细的图文介绍,对Java初学者有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Spring中的注解@Autowired实现过程全解(@Autowired 背后的故事)

    Spring中的注解@Autowired实现过程全解(@Autowired 背后的故事)

    这篇文章主要介绍了Spring中的注解@Autowired实现过程全解,给大家聊聊@Autowired 背后的故事及实现原理,需要的朋友可以参考下
    2021-07-07
  • Java Exchanger并发类使用方法

    Java Exchanger并发类使用方法

    这篇文章主要介绍了Java Exchanger并发类使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • java文件处理工具类详解

    java文件处理工具类详解

    这篇文章主要为大家详细介绍了java文件处理工具类的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • SpringBoot2底层注解@Configuration配置类详解

    SpringBoot2底层注解@Configuration配置类详解

    这篇文章主要为大家介绍了SpringBoot2底层注解@Configuration配置类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • idea显示springboot多服务启动界面service操作

    idea显示springboot多服务启动界面service操作

    这篇文章主要介绍了idea显示springboot多服务启动界面service操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • SpringBoot实现ImportBeanDefinitionRegistrar动态注入

    SpringBoot实现ImportBeanDefinitionRegistrar动态注入

    在阅读Spring Boot源码时,看到Spring Boot中大量使用ImportBeanDefinitionRegistrar来实现Bean的动态注入,它是Spring中一个强大的扩展接口,本文就来详细的介绍一下如何使用,感兴趣的可以了解一下
    2024-02-02
  • spring注解如何为bean指定InitMethod和DestroyMethod

    spring注解如何为bean指定InitMethod和DestroyMethod

    这篇文章主要介绍了spring注解如何为bean指定InitMethod和DestroyMethod,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论