如果您的手机上有一个连接到您的Gmail,雅虎等的电子邮件客户端,并且电子邮件已从您的帐户合并,按日期排序并以分页方式显示,那么您可能在日常工作中使用此类功能形成。
我只能以10个增量显示。即第一次看到10封电子邮件,然后是20封电子邮件,然后是30封等等按日期排序。基本上只是一个分页。
这个想法只是从每个帐户中抓取5封电子邮件,并按日期排序并显示其中的10封。当我获取下一组项目时会发生问题。我仍然可以再次排序这两个列表,并基本上将它们组合并附加到先前排序的列表。但是,我开始看到应该在第一个列表中的新提取日期。
E.g(我只会将电子邮件的日期列为重要部分),
Gmail = 4月10日,4月9日,4月9日,4月9日,4月9日, 4月9日,4月9日,4月9日......
Yahoo = 4月10日,4月9日,4月8日,4月7日,4月6日, 4月4日,4月4日,4月4日......
假设我的gmail和yahoo帐户每封8封电子邮件(共16封),我需要显示前10个,然后是其余6个。
基于我的算法(从每个电子邮件帐户中取5个)
First Fetch = 4月10日,4月10日,4月9日,4月9日,4月9日,4月9日,4月9日,4月8日,4月 7月4日,
Second Fetch = 4月10日,4月10日,4月9日,4月9日,4月9日,4月9日,4月9日,4月8日,4月 7月4日,4月4日,4月4日,4月4日,4月4日,4月4日,4月4日,4月4日
正如你在第二次取得时所看到的那样,4月9日是在4月6日之后出现的,但它不应该在那里。
我可以通过比较它们来轻松地将第二个6封电子邮件与第一次抓取合并,但是当用户已经开始向下滚动时问题,他们不会检查数据是否已更新。所以他们会失去一些数据。
假设我们必须每分钟处理大量数据,您将如何在 Java 8 中以更好的性能解决此问题?由于存储是一个问题,我不能将每个帐户的所有电子邮件加载到内存中。
我知道你的帮助。