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

小组用jsp做的网站论文汕头代理注册公司

小组用jsp做的网站论文,汕头代理注册公司,高端企业网站模板,网络工程师工作引言 Java 8引入了许多新特性#xff0c;其中最为显著的莫过于Lambda表达式和Stream API。Stream API提供了一种高效、简洁的方法来处理集合数据#xff0c;使代码更加简洁明了#xff0c;且具有较高的可读性和可维护性。本文将深入探讨Java Stream API的使用#xff0c;包…引言 Java 8引入了许多新特性其中最为显著的莫过于Lambda表达式和Stream API。Stream API提供了一种高效、简洁的方法来处理集合数据使代码更加简洁明了且具有较高的可读性和可维护性。本文将深入探讨Java Stream API的使用包括基础概念、常用操作、并行处理、实战案例以及最佳实践等内容。 目录 什么是Stream APIStream API的基础操作 创建Stream中间操作终端操作 Stream API的高级操作 排序筛选映射规约收集 并行StreamStream API实战案例 处理集合数据文件操作数据库操作 Stream API的最佳实践常见问题与解决方案总结 什么是Stream API Stream API是Java 8引入的一种用于处理集合数据的抽象它允许以声明性方式类似SQL语句来处理数据。Stream API提供了许多强大的操作可以用来对集合进行过滤、排序、映射、规约等操作极大地简化了代码。 特点 声明性编程使用Stream API可以以声明性的方式编写代码减少样板代码。链式调用Stream API的操作可以链式调用提高代码的可读性。惰性求值中间操作是惰性求值的只有在执行终端操作时才会进行计算。并行处理支持并行处理可以充分利用多核CPU的优势。 Stream API的基础操作 创建Stream Stream API提供了多种方式来创建Stream常见的有以下几种 从集合创建 ListString list Arrays.asList(a, b, c); StreamString stream list.stream();从数组创建 String[] array {a, b, c}; StreamString stream Arrays.stream(array);使用Stream.of StreamString stream Stream.of(a, b, c);使用Stream.generate StreamDouble stream Stream.generate(Math::random).limit(10);使用Stream.iterate StreamInteger stream Stream.iterate(0, n - n 2).limit(10);中间操作 中间操作用于转换Stream是惰性求值的常见的中间操作有以下几种 filter用于过滤元素。 StreamString stream list.stream().filter(s - s.startsWith(a));map用于映射每个元素到对应的结果。 StreamString stream list.stream().map(String::toUpperCase);flatMap用于将每个元素转换为Stream然后合并成一个Stream。 StreamString stream list.stream().flatMap(s - Stream.of(s.split()));distinct用于去重。 StreamString stream list.stream().distinct();sorted用于排序。 StreamString stream list.stream().sorted();peek用于在处理过程中查看每个元素。 StreamString stream list.stream().peek(System.out::println);终端操作 终端操作用于启动Stream的计算并生成结果常见的终端操作有以下几种 forEach对每个元素执行操作。 list.stream().forEach(System.out::println);collect将Stream转换为其他形式。 ListString result list.stream().collect(Collectors.toList());reduce将Stream中的元素规约成一个值。 OptionalString result list.stream().reduce((s1, s2) - s1 s2);toArray将Stream转换为数组。 String[] array list.stream().toArray(String[]::new);count计算元素个数。 long count list.stream().count();anyMatch、allMatch、noneMatch用于匹配判断。 boolean anyMatch list.stream().anyMatch(s - s.startsWith(a)); boolean allMatch list.stream().allMatch(s - s.startsWith(a)); boolean noneMatch list.stream().noneMatch(s - s.startsWith(a));findFirst、findAny用于查找元素。 OptionalString first list.stream().findFirst(); OptionalString any list.stream().findAny();Stream API的高级操作 排序 使用sorted方法对Stream进行排序可以传入一个比较器。 ListString list Arrays.asList(b, c, a); ListString sortedList list.stream().sorted().collect(Collectors.toList()); // 逆序排序 ListString sortedListDesc list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());筛选 使用filter方法对Stream中的元素进行筛选。 ListString list Arrays.asList(a, b, c); ListString filteredList list.stream().filter(s - s.startsWith(a)).collect(Collectors.toList());映射 使用map方法对Stream中的元素进行映射。 ListString list Arrays.asList(a, b, c); ListString mappedList list.stream().map(String::toUpperCase).collect(Collectors.toList());规约 使用reduce方法对Stream中的元素进行规约。 ListString list Arrays.asList(a, b, c); String result list.stream().reduce(, (s1, s2) - s1 s2);收集 使用collect方法将Stream转换为其他形式。 ListString list Arrays.asList(a, b, c); ListString collectedList list.stream().collect(Collectors.toList()); SetString collectedSet list.stream().collect(Collectors.toSet()); String joinedString list.stream().collect(Collectors.joining(,));并行Stream 并行Stream可以充分利用多核CPU的优势提高数据处理的效率。可以使用parallelStream方法创建并行Stream。 ListString list Arrays.asList(a, b, c); ListString parallelList list.parallelStream().map(String::toUpperCase).collect(Collectors.toList());也可以使用parallel方法将普通Stream转换为并行Stream。 ListString list Arrays.asList(a, b, c); ListString parallelList list.stream().parallel().map(String::toUpperCase).collect(Collectors.toList());需要注意的是并行Stream并不是总是比串行Stream更快具体需要根据具体情况进行测试。 Stream API实战案例 处理集合数据 案例一过滤并转换集合 给定一个包含若干字符串的集合过滤掉长度小于3的字符串并将剩余字符串转换为大写。 ListString list Arrays.asList(a, ab, abc, abcd); ListString result list.stream().filter(s - s.length() 3).map(String::toUpperCase).collect(Collectors.toList()); System.out.println(result); // 输出[ABC, ABCD]案例二计算平均值 给定一个包含若干整数的集合计算所有整数的平均值。 ListInteger list Arrays.asList(1, 2, 3, 4, 5); OptionalDouble average list.stream().mapToInt(Integer::intValue).average(); average.ifPresent(System.out::println); // 输出3.0文件操作 案例三读取文件内容 使用Stream API 读取文件内容并输出到控制台。 try (StreamString lines Files.lines(Paths.get(example.txt))) {lines.forEach(System.out::println); } catch (IOException e) {e.printStackTrace(); }案例四统计单词出现次数 读取文件内容并统计每个单词出现的次数。 try (StreamString lines Files.lines(Paths.get(example.txt))) {MapString, Long wordCount lines.flatMap(line - Arrays.stream(line.split(\\W))).collect(Collectors.groupingBy(String::toLowerCase, Collectors.counting()));wordCount.forEach((word, count) - System.out.println(word : count)); } catch (IOException e) {e.printStackTrace(); }数据库操作 案例五处理数据库查询结果 假设我们有一个数据库表users包含字段id、name和age。我们可以使用Stream API处理查询结果。 ListUser users queryDatabase(); ListString names users.stream().filter(user - user.getAge() 18).map(User::getName).collect(Collectors.toList()); System.out.println(names);Stream API的最佳实践 避免不必要的并行化并行Stream并不是总是更快应该根据具体情况进行选择。合理使用中间操作和终端操作中间操作是惰性求值的只有在执行终端操作时才会进行计算。注意Stream的可复用性Stream一旦被消费就不能再使用如果需要复用可以考虑将Stream转换为集合再使用。使用合适的收集器Collectors类提供了多种收集器可以根据具体需求选择合适的收集器。处理异常在使用Stream API时需要处理可能出现的异常尤其是在文件操作和数据库操作中。 常见问题与解决方案 Stream已关闭 Stream一旦被消费就不能再使用如果需要复用可以考虑将Stream转换为集合再使用。 ListString list Arrays.asList(a, b, c); StreamString stream list.stream(); stream.forEach(System.out::println); stream.forEach(System.out::println); // 会抛出IllegalStateException性能问题 并行Stream并不是总是比串行Stream更快具体需要根据具体情况进行测试。可以使用ForkJoinPool来优化并行Stream的性能。 ForkJoinPool customThreadPool new ForkJoinPool(4); customThreadPool.submit(() -list.parallelStream().forEach(System.out::println) ).get();内存泄漏 在使用Stream API处理大数据量时需要注意内存泄漏的问题。可以使用close方法关闭Stream或者使用try-with-resources语句自动关闭Stream。 try (StreamString lines Files.lines(Paths.get(example.txt))) {lines.forEach(System.out::println); } catch (IOException e) {e.printStackTrace(); }总结 本文详细介绍了Java Stream API的使用包括基础操作、高级操作、并行处理、实战案例以及最佳实践等内容。通过合理利用Stream API开发者可以大大简化代码提高代码的可读性和可维护性同时还可以提高数据处理的效率。希望本文对你在Java开发中的Stream API使用有所帮助。 Java Stream API是处理集合数据的强大工具通过灵活运用各种操作可以实现高效的数据处理和流式计算。如果你还没有使用过Stream API建议尽快学习和掌握这一强大的工具将其应用到你的项目中提升开发效率和代码质量。
http://www.hkea.cn/news/14341822/

相关文章:

  • 做网站好公司手机端网站开发多少钱
  • 2018做网站用什么开发做雕塑网站找哪家好
  • 家用宽带怎么做网站 访问企业外贸营销型网站
  • 启动网站建设的请示企业备案网站名称要求
  • 网站设计公司 知道万维科技东莞网站建设制作
  • 如何做双语网站建筑企业登录哪个网站
  • 微网站建设市场专业制作网站价格
  • 自学软件网站开发芜湖网站制作公司
  • 桂林网站设计公司中国企业500强榜单2022
  • 豆瓣网站是怎么建设的上海外贸上市公司有哪些
  • 上海网站建设就q479185700顶上小游戏网站
  • 镇江市建设工程质量监督局网站机电建设有限公司网站
  • 域名经纪公司推荐广州seo网站管理
  • 野望赏析南昌搜索引擎优化
  • 织梦网站怎么加入引导页windows系统做网站
  • 旅游微网站分销net的电商网站建设
  • 宿迁网站建设报价商务网站建设过程
  • 在线一键扒站源码php网站建设与管理 pdf
  • 分销商城网站建设自己做的网站怎么调用百度地图
  • dreamviewer做网站投票网站怎么做
  • 做网站哪种编程语言最好小型创业项目
  • 网站运营服务商普通企业网站费用
  • 网站设计要求做网站的费用入账
  • 大厂县城乡建设局网站房地产行业市场分析
  • 做房地产咨询网站怎么赢利上海小程序开发设计
  • 网站优化基本技巧html代码表白烟花特效
  • 网站制作公司费用网站开发还是做数据库开发
  • 宁波做网站制作网站描述怎么设置
  • wordpress网站分享朋友圈缩略图广告推广免费发布
  • 便宜网站制作如何更改网站源码