小編給大家分享一下Java如何實(shí)現(xiàn)用hash方法切割文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Hash,一般翻譯做“散列”,也有直接音譯為“哈?!钡?,就是把任意長度的輸入(又叫做預(yù)映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)。
如果有大型數(shù)據(jù)文件(如每行為url或者ip或者單詞等的),以G為單位的,處理的時候需先切分。普通切分方法直接根據(jù)數(shù)據(jù)條數(shù)切分,得到的每個文件大小相近。
但是有時需要將相同數(shù)據(jù)放到相同文件中??梢允褂胔ash切分法。
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如何實(shí)現(xiàn)用hash方法切割文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞標(biāo)題:Java如何實(shí)現(xiàn)用hash方法切割文件-創(chuàng)新互聯(lián)
文章路徑:http://aaarwkj.com/article12/jdsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、域名注冊、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計、網(wǎng)站策劃、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容