Java编程实现用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 实现文章浏览量的缓存和超时更新,问题描述和解决思路给大家介绍的非常详细,需要的朋友可以参考下2017-04-04
Spring中的注解@Autowired实现过程全解(@Autowired 背后的故事)
这篇文章主要介绍了Spring中的注解@Autowired实现过程全解,给大家聊聊@Autowired 背后的故事及实现原理,需要的朋友可以参考下2021-07-07
SpringBoot2底层注解@Configuration配置类详解
这篇文章主要为大家介绍了SpringBoot2底层注解@Configuration配置类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-05-05
idea显示springboot多服务启动界面service操作
这篇文章主要介绍了idea显示springboot多服务启动界面service操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09
SpringBoot实现ImportBeanDefinitionRegistrar动态注入
在阅读Spring Boot源码时,看到Spring Boot中大量使用ImportBeanDefinitionRegistrar来实现Bean的动态注入,它是Spring中一个强大的扩展接口,本文就来详细的介绍一下如何使用,感兴趣的可以了解一下2024-02-02
spring注解如何为bean指定InitMethod和DestroyMethod
这篇文章主要介绍了spring注解如何为bean指定InitMethod和DestroyMethod,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11


最新评论