问题背景        这两天遇到促销商品在数据库重复的问题,实在是有一点不好排查。现在也捞不到当时的日志,也不知道用户的操作。让人很是头大。所以,只能在插入数据库前对数据做一次,保证进入数据库是不重复的。如何        我能想
转载 2024-01-02 12:53:18
20阅读
1简介HyperLogLog(下称 HLL)是一种非精确的算法,它的特点是具有非常优异的空间复杂度(几乎可以达到常数级别)。HLL 算法需要完整遍历所有元素一次,而非多次或采样;该算法只能计算集合中有多少个不重复的元素,不能给出每个元素的出现次数或是判断一个元素是否之前出现过;多个使用 HLL 统计出的基数值可以融合。HLL 算法有着非常优异的空间复杂度,可以看到它的空间占用随着基数值的增长并
原创 2023-06-21 00:19:32
519阅读
3点赞
声明:本系列博客部分是根据SGG的视频整理而成,非常适合大家入门学习。部分文章是通过爬虫等技术手段采集的,目的是学习分享,如果有版权问题请留言,随时删除。《2021年最新版大数据面试题全面开启更新》HyperLogLog算法 也就是基数估计统计算法,预估一个集合中不同数据的个数,也就是我们常说的统计,在redis中也存在hyperloglog 类型的结构,
转载 2021-08-31 10:49:52
940阅读
HyperLogLog实现中,如果要求误差在0.001以内,那么就需要1048576个int, 也就是会消耗4M的存储空间,但是在实际使用中有很多的维度的统计是达不到这个数据量,那么可以在这里做一个优化,优化方式是:初始HyperLogLog内部使用存储是一个set集合,当set大小达到了指定大小(1048576)就转换为HyperLogLog存储方式。这种方式可以有效减小内存消耗。实现代码
原创 2021-02-05 20:46:22
383阅读
声明:本系列博客部分是根据SGG的视频整理而成,非常适合大家入门学习。部分文章是通过爬虫等技术手段采集的,目的是学习分享,如果有版权问题请留言,随时删除。《2021年最新版大数据面试题全面开启更新》在HyperLogLog实现中,如果要求误差在0.001以内,那么就需要1048576个int, 也就是会消耗4M的存储空间,但是在实际使用中有很多的维度的统计是达不到这个数据量,
转载 2021-08-31 10:49:36
273阅读
HyperLogLog算法 也就是基数估计统计算法,预估一个集合中不同数据的个数,也就是我们常说的统计,在redis中也存在hyperloglog 类型的结构,能够使用12k的内存,允许误差在0.81%的情况下统计2^64个数据,在这种大数据量情况下能够减少存储空间的消耗,但是前提是允许存在一定的误差。关于HyperLogLog算法原理可以参考这篇文章:https://www.jianshu.
原创 2021-02-05 20:47:09
2315阅读
背景在Apahce IoTDB中,查询最后需要根据时间戳列做join,而这一步操作是通过一个带有自动功能的优先队列实现的。之前的实现中,我们采用了Java自带的TreeSet,但是发现了如下的问题之后,自己实现了一个高效的优先队列。Java语言库中自带了PriorityQueue作为默认优先队列的实现,为了代码的重用,Java也采用泛型编程的方式实现了PriorityQueue。但是与其他
就比如一个大型的网站会少不了大量的用户访问,就比如天猫的uv访问统计,一个用户一天内访问多次顶多算一次uv;淘宝、天猫首页的uv平均每天是1~1.5亿左右;,每天存1.5亿个用户的ip,访问者来了先去查是否存在,不存在则写入,那么这个存储得占多大空间?另外统计的读取速度又能保证达到预期吗? 这里可能
原创 2022-03-14 14:03:30
1075阅读
几种列表的方法 在这里我来分享几种列表的方法,算是一次整理吧,如有纰漏,请不吝赐教。 1. Stream 的distinct()方法 distinct()是Java 8 中 Stream ...
转载 2021-08-30 16:28:00
2083阅读
2评论
##一、概述 在日常开发中,最重要的环节就是对数据的正确处理,而集合也是日常开发经常遇到的情况,下面简单根据个人开发遇到的情况,记录下集合的方法。 ##二、案例 ###1. 集合子集 集合子集可采用removeAll()方法,源码如下:boolean removeAll(Collection<?> c) Removes from this list all of its e
转载 2023-05-18 15:53:26
307阅读
常规元素 • 实现原理 针对List,除了遍历,建议利用Set集合不允许重复元素的特点,通过List和Set互转实现
转载 2023-07-25 22:28:00
113阅读
java类里边的:List<Person> data= customerService.getPersonList;//得到属性值重复的集合 HashSet<Person > h = new HashSet<Person >(data);//操作 data.clear();//清除data中原有的数据 data.addAll(h);//将去后的数据放入
转载 2014-03-04 15:40:35
139阅读
/** * 方式一:后对象在集合的顺序变化 * List对象,按照对象的某个字段,返回去后新的对象集合 * **/ public static void main(String[] args) { List<Student> list = new ArrayList<>(); list.add(Student.builder().stu
转载 2023-06-26 15:30:57
152阅读
1:正常使用的方法forEach2:java8  distinct 使用的方法List<Map> collect = list.stream().distinct().collect(Collectors.toList());不能复杂类型(对象不重写eqs)3:java8  collectingAndThen 使用的方法 ArrayList&lt
转载 2023-06-03 12:27:19
604阅读
本文为博主原创,转载请注明出处: 未完,待续。。。。
原创 2023-03-23 09:36:00
77阅读
# Java 在日常的开发中,我们经常需要对数据进行操作。无论是从文件、数据库中读取数据,还是从用户输入中获取数据,都有可能出现重复的情况。本文将介绍在Java中进行的几种常见方法,帮助读者了解的原理和实现方式。 ## 方法一:使用Set集合 Set是Java集合框架中的一种,它的特点是不允许存储重复的元素。我们可以利用Set的特性,将重复的元素自动去除。 以下是使用Set
原创 2023-08-09 03:01:21
469阅读
在实际项目开发中,一个常见的问题是如何对 Java 集合进行。在本文中,我将详细记录解决“ Java”问题的过程,涵盖备份策略、恢复流程、灾难场景、工具链集成、日志分析及案例分析等方面。 我们首先明确的逻辑。Java 提供了多种数据结构如 `Set` 和 `Map`,能够有效地执行操作,但在某些业务需求下,可能需要对复杂对象进行,这就需要我们设计适当的算法和策略。以下是我整理
原创 6月前
26阅读
# Java for实现流程 ## 导语 在Java开发中,经常会遇到需要对数据进行的情况。本文将介绍一种常用的方法,使用for循环来实现。 ## 流程图 ```mermaid journey title Java for实现流程 section 准备工作 初始化一个空的目标集合 section 循环遍历原始数据 foreach 数据 in 原始数据 if 数据
原创 2024-02-04 08:59:08
22阅读
JAVA 是处理数据时一个非常常见的问题。在实际应用中,我们常常会遇到重复数据的问题,如何有效地是我们需要关注的重点。本文将详细记录 JAVA 的相关策略和流程。 ## 备份策略 在进行之前,优秀的备份策略至关重要。首先,我们需要明确数据备份的流程。以下是备份的流程图: ```mermaid flowchart TD A[数据生成] --> B{选择存储介质}
原创 6月前
31阅读
定义链表节点结构:public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }这是一个简单的问题,仅测试你操作列表的结点指针的能力。由于输入的列表已排序,因此我们可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它
转载 2023-10-01 12:13:04
211阅读
  • 1
  • 2
  • 3
  • 4
  • 5