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

seo网站优化是什么盐城公司网站建设电话

seo网站优化是什么,盐城公司网站建设电话,企业展厅设计公司豆河镇展厅设计公司笔中展览,一套会员管理系统多少钱一、JDFrame 介绍 在大数据处理领域#xff0c;Apache Spark以其强大的分布式计算能力和丰富的数据处理API而广受好评。然而#xff0c;在许多日常的软件开发场景中#xff0c;我们面临的数据量可能并不需要Spark这样的分布式系统来处理。相反#xff0c;我们更希望有一种…一、JDFrame 介绍 在大数据处理领域Apache Spark以其强大的分布式计算能力和丰富的数据处理API而广受好评。然而在许多日常的软件开发场景中我们面临的数据量可能并不需要Spark这样的分布式系统来处理。相反我们更希望有一种工具能够在单机环境下提供类似Spark的便捷数据处理能力。Java 8的Stream API虽然提供了一种简化的数据处理方式但在复杂的数据转换和操作上它仍显得有些力不从心。正是在这样的需求背景下JDFrame应运而生。JDFrame借鉴了Spark的API设计理念为Java开发者提供了一套比Java Stream更为强大和灵活的流式数据处理工具。 JDFrame的核心优势之一是其丰富的API。它不仅包含了Java 8 Stream的基础操作还增加了更多高级数据处理功能如窗口函数、复杂条件过滤、自定义聚合以及类似SQL的分组、聚合和连接操作。这些额外的功能使得JDFrame能够轻松应对复杂的数据操作需求为开发者提供了更大的灵活性和便利性。 总之就是你可以使用SQL处理的思路去处理数据。 Githb 地址https://github.com/burukeYou/JDFrame 使用示例 添加依赖 dependencygroupIdio.github.burukeyou/groupIdartifactIdjdframe/artifactIdversion0.0.4/version /dependencypublic class JdframeTest {DataAllArgsConstructorNoArgsConstructorpublic static class UserVO {private int id;private String name;private Integer age;private Integer score;}private static final ListUserVO userVOS Arrays.asList(new UserVO(1, 张三, 20, 90),new UserVO(2, 李四, 21, 92),new UserVO(3, 王五, 30, 95),new UserVO(4, 赵六, 15, 85),new UserVO(5, 小明, 32, 88),new UserVO(6, 小红, 18, 94),new UserVO(7, 小兰, 19, 75),new UserVO(8, 小青, 12, 60),new UserVO(9, 小王, 16, 34),new UserVO(10, 小李, 17, 49),new UserVO(11, 张三, 19, 59));public static void main(String[] args) {System.out.println(查看分数在 60 - 90 之间的姓名、分数的 Top5);SDFrameFI2String, BigDecimal sdf1 SDFrame.read(userVOS).whereNotNull(UserVO::getScore) // 不为空.whereBetween(UserVO::getScore, 60, 90) // 范围过滤.groupBySum(UserVO::getName, UserVO::getScore) // 聚合求和.sortDesc(FI2::getC2) // 根据值降序排列.cutFirst(5); // 保留 Top5sdf1.show(); // 查看数据System.out.println(查看姓名中 张 开头的信息);SDFrameUserVO sdf2 SDFrame.read(userVOS).whereNotNull(UserVO::getName) // 不为空.whereLikeLeft(UserVO::getName, 张); // 模糊查询sdf2.show();System.out.println(查看80分以上的平均年龄);BigDecimal sdf3 SDFrame.read(userVOS).whereNotNull(UserVO::getAge) // 不为空.whereNotNull(UserVO::getName) // 不为空.whereGt(UserVO::getScore,80) // 分数大于80.avg(UserVO::getAge); // 计算平均System.out.println(sdf3);}}运行结果 二、JDFrame VS Java Stream JDFrame 在功能上要比 Java Stream 强大在性能上相比呢下面构建一千万条数据进行分组计算后取 Top 数据看谁处理的更快 public class JdframePropertyTest {DataAllArgsConstructorNoArgsConstructorpublic static class UserVO {private int id;private String name;private Integer age;private Integer score;}public static void main(String[] args) {ListUserVO userVOS new ArrayList();Random random new Random();// 构造一千万条数据for (int i 0; i 10000000; i) {userVOS.add(new UserVO(1, String.valueOf(i), (random.nextInt(91) 10), (random.nextInt(71) 30)));}System.out.println(准备测试数据完成当前数据量userVOS.size());// 根据每个年龄进行分组求和最后取出分数最大的 top5 的年龄和总分数// java stream 处理System.out.println(开始 java stream 处理。。。);long t1 System.currentTimeMillis();ListMap.EntryInteger, Integer streamTop userVOS.stream().filter(Objects::nonNull).filter(u - Objects.nonNull(u.getAge())).filter(u - Objects.nonNull(u.getScore())).collect(Collectors.groupingBy(UserVO::getAge, Collectors.summingInt(UserVO::getScore))).entrySet().stream().sorted(Map.Entry.Integer, IntegercomparingByValue().reversed()).limit(5).collect(Collectors.toList());System.out.println(java stream 耗时 (System.currentTimeMillis() - t1) , 结果如下);streamTop.forEach(map - System.out.println(age: map.getKey() , score: map.getValue()));streamTop.clear();System.out.println(开始 jdFrame 处理。。。);t1 System.currentTimeMillis();ListFI2Integer, BigDecimal jdFrameTop SDFrame.read(userVOS).whereNotNull(UserVO::getAge).whereNotNull(UserVO::getScore).groupBySum(UserVO::getAge, UserVO::getScore).sortDesc(FI2::getC2).cutFirst(5).toLists();System.out.println(jdFrame 耗时 (System.currentTimeMillis() - t1) , 结果如下);jdFrameTop.forEach(fi2 - System.out.println(age: fi2.getC1() , score: fi2.getC2()));}}从结果上看JDFrame 的速度逊色一些但如果你处理数据量不大的情况JDFrame 确实是一个非常好的工具。 比如数据量在一百万的时候差距明显减少 下面可以学习下 JDFrame 的 Api 。 三、JDFrame Api 3.1 Where 条件过滤 3.1.1 精确过滤 SDFrame.read(userVOS)// is not nll.whereNotNull(UserVO::getName)// .whereEq(UserVO::getName, 张三)// ! , .whereNotEq(UserVO::getName, 李四);3.1.2 模糊过滤 SDFrame.read(userVOS)// like %小%.whereLike(UserVO::getName, 小)// like 小%.whereLikeLeft(UserVO::getName, 小)// like %小.whereLikeRight(UserVO::getName, 小);3.1.3 范围过滤 SDFrame.read(userVOS)// .whereGt(UserVO::getScore, 60)// .whereGe(UserVO::getScore, 60)// .whereLe(UserVO::getScore, 60)// .whereLt(UserVO::getScore, 60)// and .whereBetween(UserVO::getScore, 60, 80)// and .whereBetweenR(UserVO::getScore, 60, 80)// and .whereBetweenL(UserVO::getScore, 60, 80)// in.whereIn(UserVO::getScore, Arrays.asList(60, 70, 80))// not in.whereNotIn(UserVO::getScore, Arrays.asList(60, 70, 80));3.2 数据统计 3.2.1 分组求和 JDFrameUserVO frame JDFrame.read(userVOS); // select name,sum(score) from userVOs group by name frame.groupBySum(UserVO::getName, UserVO::getScore);// select name,age,sum(score) from userVOs group by name, age frame.groupBySum(UserVO::getName, UserVO::getAge, UserVO::getScore);3.2.2 分组求最大最小值 JDFrameUserVO frame JDFrame.read(userVOS);// select name,max(age) from userVOs group by name frame.groupByMaxValue(UserVO::getName, UserVO::getScore);// 和 groupByMaxValue 一致拿到的是对象 frame.groupByMax(UserVO::getName, UserVO::getScore);// select name,min(score) from userVOs group by name frame.groupByMinValue(UserVO::getName, UserVO::getScore);// 和 groupByMinValue 一致拿到的是对象 frame.groupByMaxMin(UserVO::getName, UserVO::getScore);3.2.3 分组计数 JDFrameUserVO frame JDFrame.read(userVOS);// select count(1) from userVOs group by name frame.groupByCount(UserVO::getName);// select count(1) from userVOs group by name, age frame.groupByCount(UserVO::getName, UserVO::getAge);// select count(1) from userVOs group by name, age, score frame.groupByCount(UserVO::getName, UserVO::getAge, UserVO::getScore);// select name,sum(score),count(1) from userVOs group by name frame.groupBySumCount(UserVO::getName, UserVO::getScore);3.2.4 整体统计 JDFrameUserVO frame JDFrame.read(userVOS); // select max(score) from userVOs frame.maxValue(UserVO::getScore); // 和 maxValue 一致拿到的是对象 frame.max(UserVO::getScore); // select min(score) from userVOs frame.minValue(UserVO::getScore); // 和 minValue 一致拿到的是对象 frame.min(UserVO::getScore); // select avg(score) from userVOs frame.avg(UserVO::getScore); // select sum(score) from userVOs frame.sum(UserVO::getScore); // select max(score),min(score) from userVOs frame.maxMinValue(UserVO::getScore); // 和 maxMinValue 一致可以拿到对象 frame.maxMin(UserVO::getScore);3.3 排序 JDFrameUserVO frame JDFrame.read(userVOS); // select * from userVOS order by score desc frame.sortDesc(UserVO::getScore); // select * from userVOS order by age asc frame.sortAsc(UserVO::getAge); // select * from userVOS order by score asc, age asc frame.sortDesc(Sorter.sortDescBy(UserVO::getScore).sortAsc(UserVO::getAge)); // 自定义排序规则 frame.sortAsc(Comparator.comparing(e - {if (e.getAge() 20 e.getScore() 80) {return 1;} else {return 0;} }));3.4 去重 JDFrameUserVO frame JDFrame.read(userVOS); // 根据对象去重 frame.distinct(); // 根据某个字段去重 frame.distinct(UserVO::getName); // 根据多个字段先后去重 frame.distinct(UserVO::getName).distinct(UserVO::getAge);3.5 join 连接 JDFrameUserVO frame1 JDFrame.read(userVOS); JDFrameUserVO frame2 JDFrame.read(userVOS); // 内连接 JDFrameUserVO join frame1.join(frame2, (f1, f2) - Objects.equals(f1.getId(), f2.getId()), (f1, f2) - {// 具体合并曹组f1.setName(f2.getName());return f1; }); // 左连接 JDFrameUserVO leftJoin frame1.leftJoin(frame2, (f1, f2) - Objects.equals(f1.getId(), f2.getId()), (f1, f2) - {// 具体合并曹组f1.setName(f2.getName());return f1; }); // 右连接 JDFrameUserVO rightJoin frame1.rightJoin(frame2, (f1, f2) - Objects.equals(f1.getId(), f2.getId()), (f1, f2) - {// 具体合并曹组f1.setName(f2.getName());return f1; });3.6 其他操作 JDFrameUserVO frame JDFrame.read(userVOS); // 打印数据 frame.show(); // 获取表头 frame.columns(); // 获取某一列数据 frame.col(UserVO::getName); // 获取第一条数据 frame.head(); // 获取前 5 数据 frame.head(5); // 获取最后一个数据 frame.tail(); // 获取最后5条数据 frame.tail(5); // 分页获取数据 frame.page(1, 5);// JDFrame 新增数据 frame.append(new UserVO(12, 小九, 19, 59)); // 多个 JDFrame 合并数据 frame.union(JDFrame.read(userVOS));// 数据截取 // 截取前5个数据 frame.cutFirst(5); // 截取最后5个数据 frame.cutLast(5); // 指定范围截取 frame.cut(2, 5); // 分页截取 frame.cutPage(1, 5);// 数据拆分, 分为 5 个一组 frame.partition(5);
http://www.w-s-a.com/news/171063/

相关文章:

  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好
  • 站长工具大全企业网上书店网站建设设计
  • 做网站的专业公司公司网站是做的谷歌的
  • 做网站前期工作wordpress图片并排
  • 免费注册网站哪个好wordpress评论修改
  • 合肥模板网站建设软件赤峰公司网站建设
  • 毕业设计都是做网站吗深圳网站制作企业邮箱
  • 网站排名 优帮云小规模公司简介怎么写
  • 那个做头像的网站好选择手机网站建设
  • 设计一个网站花多少时间做视频网站适合用什么服务器
  • asp网站开发环境订单系统单页面网站怎么做
  • 山东网站建设都有那些企业推广策略
  • 网站开发文档是什么概念衣服销售网站建设规划书范文
  • 中国建筑装饰网官网企业网站设计优化公司
  • 南海建设工程交易中心网站c2c交易平台有哪些?
  • 有没有专业做网站架构图的软件番禺建设网站哪个好
  • 建立网站第一步整站seo优化公司
  • php网站开发文章管理系统wordpress 评论 顶踩 心 插件
  • 网站做百度收录的意义html网页设计代码作业代码