当前位置: 首页 > news >正文

kali钓鱼网站制作机电建设有限公司网站

kali钓鱼网站制作,机电建设有限公司网站,网站换空间有影响吗,局域网建设网站如何访问一、集合 1. java中如何给一个超大的一个亿左右的list数据去重#xff1f; 我当时的回答是使用HashSet或Stream流的distinct语法。但是面试官好像更注重内存的消耗问题。 使用HashSet#xff1a; HashSet 是一个不允许有重复元素的集合。你可以将List中的元素添加到HashSe…一、集合 1. java中如何给一个超大的一个亿左右的list数据去重 我当时的回答是使用HashSet或Stream流的distinct语法。但是面试官好像更注重内存的消耗问题。 使用HashSet HashSet 是一个不允许有重复元素的集合。你可以将List中的元素添加到HashSet中然后再将HashSet转换回List如果你需要的话。但请注意这种方法只适用于可以安全地在HashSet中存储的元素即实现了正确的hashCode()和equals()方法的对象。 ListYourType originalList ... // 你的原始列表 SetYourType set new HashSet(originalList); ListYourType uniqueList new ArrayList(set);但是如果List中的元素非常大例如每个元素都是一个复杂的对象那么将整个List添加到HashSet中可能会消耗大量内存。 流式处理Stream API 如果你使用的是Java 8或更高版本你可以使用Stream API进行去重。但是流式处理可能不适用于非常大的数据集因为它需要在内存中构建中间结果。 ListYourType uniqueList originalList.stream().distinct().collect(Collectors.toList());与HashSet方法类似这种方法也依赖于元素的hashCode()和equals()方法的正确实现。 bigSet参考https://blog.csdn.net/qq_44591181/article/details/138843109 个人柑橘bigSet更适合存数字的去重 import java.util.ArrayList; import java.util.BitSet; import java.util.HashMap; import java.util.List; import java.util.Map;class MyObject {private int id; // 假设对象有一个唯一的ID属性// 构造函数、getter、setter等... }public class ListDeduplicationWithBitmapForObjects {// 假设我们有一个函数可以将对象映射到唯一的整数IDpublic static int getIdFromObject(MyObject obj) {return obj.getId(); // 示例直接返回对象的ID属性}public static ListMyObject deduplicateListWithBitmap(ListMyObject list) {// 假设我们知道可能的最大ID是maxValue实际情况中需要根据数据确定int maxValue ...; // 例如如果你的ID范围是0到100000000则maxValue 100000000// 创建一个BitSet大小为maxValue1BitSet bitSet new BitSet(maxValue 1);// 遍历原始List并将对象的ID设置为true在BitSet中for (MyObject obj : list) {int id getIdFromObject(obj);if (id 0 id maxValue) { // 确保ID在有效范围内bitSet.set(id);}}// 创建一个新的List来存储去重后的对象如果需要的话ListMyObject deduplicatedList new ArrayList();// 如果你需要保留去重后的对象列表你可能需要额外的数据结构来存储对象与ID的映射// 这里只是一个简单的示例我们假设你可以从ID直接获取到对象这通常不现实// 遍历BitSet如果需要的话可以将ID转换回对象并添加到deduplicatedList中// 但在这个简单的示例中我们仅打印去重后的IDfor (int i bitSet.nextSetBit(0); i 0; i bitSet.nextSetBit(i 1)) {// MyObject obj getObjectFromId(i); // 假设你有这样的函数可以从ID获取对象System.out.println(i); // 或者打印出对象的ID// deduplicatedList.add(obj); // 如果需要的话将对象添加到列表中}// 注意这个示例没有返回去重后的对象列表因为它取决于你如何存储和检索对象// 根据你的具体需求你可能需要实现getObjectFromId函数或其他逻辑来恢复对象return null; // 或者返回一个空的deduplicatedList取决于你的需求}public static void main(String[] args) {// 示例创建一个包含重复对象的ListListMyObject list new ArrayList();// ... 添加对象到list中 ...// 去重并可能打印结果取决于你的实现deduplicateListWithBitmap(list);} }内存占用比较 在内存消耗有限制的场景中使用BitSet来去重确实可以比使用HashSet更加节省内存特别是在处理大量整数或可以映射到整数的对象时。但是节省的内存量取决于具体的数据集和整数ID的分布情况。 以下是使用BitSet与HashSet去重时内存消耗的对比 BitSet BitSet使用位bit来表示每个可能的元素是否出现过。因此如果你知道可能的ID范围是0到maxValue那么BitSet将使用(maxValue 1) / 8个字节因为一个字节有8位。 BitSet不会为那些未使用的ID分配内存因此它的内存使用是固定的并且基于ID范围的上限。 HashSet HashSet使用哈希表来存储对象每个对象都映射到一个哈希桶bucket。哈希表的大小通常是基于负载因子load factor和预期的元素数量来动态调整的。 对于整数如果直接使用HashSet那么每个Integer对象本身就需要一定的内存大约16到24字节取决于JVM和JVM设置。此外哈希表本身也需要额外的内存来存储桶数组和链表或红黑树用于解决哈希冲突。 对于对象HashSet会存储对象的引用所以实际的内存消耗还取决于对象的大小。 内存占用的减少量 如果你的ID范围是连续的并且你知道这个范围那么BitSet的内存消耗将是固定的并且通常远低于HashSet。 假设maxValue是100,000,000BitSet将需要大约12.5MB(100,000,000 1) / 8 / 1024 / 1024。而使用HashSet存储这么多Integer对象将需要显著更多的内存。 如果对象本身很大那么HashSet的内存消耗将更高。 注意事项 BitSet只适用于可以映射到整数ID的对象并且这些ID的范围是已知的且相对较小的。 BitSet不支持直接存储对象因此如果你需要保留去重后的对象列表你需要额外的数据结构如HashMap来存储对象与ID之间的映射。 HashSet提供了更通用的去重功能可以处理任何类型的对象而不仅仅是整数或可以映射到整数的对象。 在选择使用哪种方法时请考虑你的具体需求包括内存限制、数据类型、对象大小以及是否需要保留去重后的对象列表等因素。
http://www.w-s-a.com/news/440605/

相关文章:

  • 网站建设好处上海建设工程网站
  • 黑河哈尔滨网站建设太原网站制作定制开发
  • 建站做网站香河住房与建设局网站
  • 如何制造一个网站域名分类网站
  • 解析视频的网站怎么做凡科网快图
  • 企业网站优化问题接单app平台有哪些
  • 怎么做网站后缀识别符号才不会变什么是电子商务网站建设
  • 中山 五金 骏域网站建设专家专门用来制作网页的软件是什么
  • 怎么做刷东西的网站数据分析软件工具有哪些
  • 官方购物网站正品交易网站域名
  • lol网站建设seo 网站太小
  • 网站建设销售职责手机网站制作软件
  • 福州百度企业网站seo如何在电脑上登录wordpress
  • 开发区全力做好网站建设网络广告营销成功案例
  • 114网站建设高并发系统架构
  • php网站打开一片空白wordpress中文广告插件下载
  • 怎样建自己的网站免费的百度关键词排名点击
  • 医院网站建设的特点怎么查看网站百度快照
  • 网站 如何备案一般网站开发公司
  • 做网站的公司 贵阳郑州新像素ui设计培训收费
  • 温州网站建设公司电话给个免费的网址
  • 个人做电子商务网站备案软考高级
  • 淘宝客需要自己做网站吗四川遂宁做网站的公司
  • 编写网站策划书缘魁上海网站建设
  • 梧州外贸网站推广设计wordpress 上传 七牛
  • 增加网站备案千灯做网站
  • 深圳做网站的公php做简易网站
  • 徐州哪家做网站好商业空间设计效果图
  • 重庆建网站cqiezscom大学毕业做网站插画师好吗
  • 在门户网站做产品seo怎么样做网站管理员