首 页 行业资讯 新车 试驾评测 养车用车 车型库

java面试题:将一个20G的数据,存入一个运行2G的电脑里,每个数据占一行...

发布网友 发布时间:2022-04-22 21:47

我来回答

1个回答

热心网友 时间:2022-04-10 03:10

这题考的是大数据去重,数据量大于内存,即无法直接在内存中去重,那么有两个方案:
1、内存外去重
也就是将数据存入数据库,然后利用数据库进行排序并去重。
优缺点:
1)优点:简单直接
2)缺点:消耗大
2、算法去重
题目中说明是20G数据,假设每行数据是1k,则数据行数是20M(如果每行数据是512字节,则数据行数是40M),可使用MD5对每行数据进行映射,获得16字节映射吗,即总共需要内存空间320M(或0M),满足内存内去重的需求。
优缺点:
1)优点:在内存内进行处理,速度明显比内存为要快。
2)缺点:需要进行额外的编码,程序复杂度和效率要求较高。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com