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

策划方案免费的网站wordpress评论框美化

策划方案免费的网站,wordpress评论框美化,新闻排版设计用什么软件,孟村做网站价格1. Stream 流 背景 Stream是Java 8引入的一个用于处理集合#xff08;或其他数据源#xff09;中的元素的API。它提供了一种声明式的方式来处理数据#xff0c;并可以链式调用。Stream支持惰性求值#xff0c;也支持并行流处理。 1.1 创建 Stream 创建一个Stream可以通…1. Stream 流 背景 Stream是Java 8引入的一个用于处理集合或其他数据源中的元素的API。它提供了一种声明式的方式来处理数据并可以链式调用。Stream支持惰性求值也支持并行流处理。 1.1 创建 Stream 创建一个Stream可以通过多种方式不同的数据源如集合、数组、生成器等提供了不同的创建方法。 1.1.1 使用集合创建 Stream 方法stream() 方法可以用于集合类如 List、Set 等返回一个顺序流。 ListInteger list Arrays.asList(1, 2, 3, 4, 5); StreamInteger stream list.stream(); stream.forEach(System.out::println); // 输出 1, 2, 3, 4, 51.1.2 使用 Arrays 创建 Stream 方法Arrays.stream() 可以从数组创建 Stream。 int[] numbers {1, 2, 3, 4, 5}; IntStream stream Arrays.stream(numbers); stream.forEach(System.out::println); // 输出 1, 2, 3, 4, 51.1.3 使用 Stream.of() 方法Stream.of() 创建包含指定元素的Stream。 StreamString stream Stream.of(Apple, Banana, Cherry); stream.forEach(System.out::println); // 输出 Apple, Banana, Cherry1.1.4 使用生成器 方法Stream.generate() 和 Stream.iterate() 用于生成无限流。 StreamDouble randomNumbers Stream.generate(Math::random); randomNumbers.limit(5).forEach(System.out::println); // 输出5个随机数StreamInteger evenNumbers Stream.iterate(0, n - n 2); evenNumbers.limit(5).forEach(System.out::println); // 输出 0, 2, 4, 6, 81.2 中间操作 中间操作是惰性求值的它们返回一个新的Stream对象允许链式调用。常见的中间操作包括 filter(), map(), flatMap(), distinct(), sorted() 等。 1.2.1 filter() 作用过滤出符合条件的元素。签名StreamT filter(Predicate? super T predicate) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); ListInteger evenNumbers numbers.stream().filter(n - n % 2 0).collect(Collectors.toList()); System.out.println(evenNumbers); // 输出 [2, 4, 6, 8, 10]1.2.2 map() 作用对流中的每个元素应用给定的函数生成一个新的流。签名R StreamR map(Function? super T, ? extends R mapper) ListString words Arrays.asList(hello, world, java); ListString upperCaseWords words.stream().map(String::toUpperCase).collect(Collectors.toList()); System.out.println(upperCaseWords); // 输出 [HELLO, WORLD, JAVA]1.2.3 flatMap() 作用将流中的元素转换成另一个流然后将多个流合并为一个流。通常用于处理包含集合或数组的流。签名R StreamR flatMap(Function? super T, ? extends Stream? extends R mapper) ListListString listOfLists Arrays.asList(Arrays.asList(A, B, C),Arrays.asList(D, E, F) ); ListString flatList listOfLists.stream().flatMap(List::stream).collect(Collectors.toList()); System.out.println(flatList); // 输出 [A, B, C, D, E, F]1.2.4 distinct() 作用去重返回一个只包含不同元素的流。签名StreamT distinct() ListInteger numbers Arrays.asList(1, 2, 2, 3, 4, 4, 5); ListInteger distinctNumbers numbers.stream().distinct().collect(Collectors.toList()); System.out.println(distinctNumbers); // 输出 [1, 2, 3, 4, 5]1.2.5 sorted() 作用对流中的元素进行排序。签名StreamT sorted() ListInteger numbers Arrays.asList(5, 2, 8, 1, 3); ListInteger sortedNumbers numbers.stream().sorted().collect(Collectors.toList()); System.out.println(sortedNumbers); // 输出 [1, 2, 3, 5, 8]1.2.6 anyMatch(), allMatch(), noneMatch() 作用这些方法用于匹配流中的元素 anyMatch() 检查流中是否至少有一个元素满足条件。allMatch() 检查流中的所有元素是否都满足条件。noneMatch() 检查流中是否没有元素满足条件。 签名 boolean anyMatch(Predicate? super T predicate)boolean allMatch(Predicate? super T predicate)boolean noneMatch(Predicate? super T predicate) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); boolean anyGreaterThan3 numbers.stream().anyMatch(n - n 3); // true boolean allGreaterThan0 numbers.stream().allMatch(n - n 0); // true boolean noneNegative numbers.stream().noneMatch(n - n 0); // true System.out.println(anyGreaterThan3); // 输出 true System.out.println(allGreaterThan0); // 输出 true System.out.println(noneNegative); // 输出 true1.2.7 peek() 作用peek() 用于在中间操作中查看流中的每个元素。通常用于调试。签名StreamT peek(Consumer? super T action) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); ListInteger result numbers.stream().peek(n - System.out.println(Before filter: n)).filter(n - n % 2 0).collect(Collectors.toList());1.3 终止操作 终止操作会触发流的处理并生成一个最终的结果或副作用。常见的终止操作包括 collect(), forEach(), reduce(), count(), min() 等。 1.3.1 collect() 作用将流转换为集合或其他类型的结果。签名R, A R collect(Collector? super T, A, R collector) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); ListInteger evenNumbers numbers.stream().filter(n - n % 2 0).collect(Collectors.toList()); System.out.println(evenNumbers); // 输出 [2, 4]1.3.2 forEach() 作用对流中的每个元素执行给定的操作。签名void forEach(Consumer? super T action) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); numbers.stream().forEach(n - System.out.println(n)); // 输出 1, 2, 3, 4, 51.3.3 reduce() 作用将流中的元素结合成一个单一的结果常用于求和、求积等操作。签名T reduce(T identity, BinaryOperatorT accumulator) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); int sum numbers.stream().reduce(0, (a, b) - a b); System.out.println(sum); // 输出 151.3.4 count() 作用计算流中的元素个数。签名long count() ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); long count numbers.stream().filter(n - n % 2 0).count(); System.out.println(count); // 输出 21.3.5 min() 和 max() 作用找到流中的最小值或最大值。签名OptionalT min(Comparator? super T comparator) ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); OptionalInteger min numbers.stream().min(Integer::compare); System.out.println(min.get()); // 输出 11.3.6 findFirst() 和 findAny() 作用这两个方法用于获取流中的元素。 findFirst() 返回第一个元素。findAny() 返回任意元素并行流时表现不同。 ListInteger numbers Arrays.asList(1, 2, 3, 4, 5); OptionalInteger first numbers.stream().findFirst(); OptionalInteger any numbers.stream().findAny(); System.out.println(first.get()); // 输出 1 System.out.println(any.get()); // 输出 任意一个数总结 Stream 提供了更简洁、声明式的方式处理数据流。中间操作如 filter(), map(), flatMap() 等支持链式操作实现强大的数据处理能力。终止操作则触发最终的处理过程如 collect(), forEach(), reduce() 等。 2. Optional 类 背景 Optional 是 Java 8 引入的一个容器类用于解决传统 null 引用带来的 NullPointerException 问题。它表示一个可能为 null 的值而不是直接使用 null通过提供多种方法使得 Optional 的值可以更安全地处理。 Optional 主要用于以下几种场景 避免 null 值避免直接返回或传递 null提高代码的可读性和安全性。链式操作允许对可能为 null 的值进行安全的链式调用而不必担心 NullPointerException。 2.1 创建 Optional 2.1.1 Optional.of() 作用创建一个非空的 Optional如果值为 null则抛出 NullPointerException。签名static T OptionalT of(T value) OptionalString optional Optional.of(Hello); System.out.println(optional.get()); // 输出 Hello注意传入 null 会抛出异常。 OptionalString optional Optional.of(null); // 会抛出 NullPointerException2.1.2 Optional.ofNullable() 作用创建一个 Optional如果值为 null则返回一个空的 Optional。签名static T OptionalT ofNullable(T value) OptionalString optional Optional.ofNullable(Hello); System.out.println(optional.get()); // 输出 HelloOptionalString emptyOptional Optional.ofNullable(null); System.out.println(emptyOptional.isPresent()); // 输出 false2.1.3 Optional.empty() 作用创建一个空的 Optional 对象。签名static T OptionalT empty() OptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.isPresent()); // 输出 false2.2 常用方法 2.2.1 isPresent() 作用检查 Optional 是否包含一个非空的值。签名boolean isPresent() OptionalString optional Optional.of(Hello); System.out.println(optional.isPresent()); // 输出 trueOptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.isPresent()); // 输出 false2.2.2 ifPresent() 作用如果 Optional 中有值则执行给定的操作如果没有值则什么也不做。签名void ifPresent(Consumer? super T action) OptionalString optional Optional.of(Hello); optional.ifPresent(System.out::println); // 输出 HelloOptionalString emptyOptional Optional.empty(); emptyOptional.ifPresent(System.out::println); // 不输出任何内容2.2.3 get() 作用获取 Optional 中的值如果值不存在会抛出 NoSuchElementException。签名T get() OptionalString optional Optional.of(Hello); System.out.println(optional.get()); // 输出 HelloOptionalString emptyOptional Optional.empty(); // emptyOptional.get(); // 会抛出 NoSuchElementException2.2.4 orElse() 作用如果 Optional 中有值返回该值如果没有值返回提供的默认值。签名T orElse(T other) OptionalString optional Optional.of(Hello); System.out.println(optional.orElse(Default Value)); // 输出 HelloOptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.orElse(Default Value)); // 输出 Default Value2.2.5 orElseGet() 作用与 orElse() 类似但 orElseGet() 使用 Supplier 提供默认值这样可以延迟计算。签名T orElseGet(Supplier? extends T supplier) OptionalString optional Optional.of(Hello); System.out.println(optional.orElseGet(() - Default Value)); // 输出 HelloOptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.orElseGet(() - Default Value)); // 输出 Default Value2.2.6 orElseThrow() 作用如果 Optional 中有值返回该值如果没有值抛出指定的异常。签名T orElseThrow(Supplier? extends X exceptionSupplier) OptionalString optional Optional.of(Hello); System.out.println(optional.orElseThrow(() - new IllegalArgumentException(Value is missing))); // 输出 HelloOptionalString emptyOptional Optional.empty(); // emptyOptional.orElseThrow(() - new IllegalArgumentException(Value is missing)); // 会抛出 IllegalArgumentException2.2.7 map() 作用如果 Optional 中有值应用给定的映射函数返回一个新的 Optional如果没有值则返回一个空的 Optional。签名U OptionalU map(Function? super T, ? extends U mapper) OptionalString optional Optional.of(Hello); OptionalString upperCaseOptional optional.map(String::toUpperCase); System.out.println(upperCaseOptional.get()); // 输出 HELLOOptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.map(String::toUpperCase).isPresent()); // 输出 false2.2.8 flatMap() 作用类似于 map()但 flatMap() 返回的是一个 Optional。通常用于处理返回值本身可能为 Optional 的情况。签名U OptionalU flatMap(Function? super T, OptionalU mapper) OptionalString optional Optional.of(Hello); OptionalString result optional.flatMap(value - Optional.of(value.toUpperCase())); System.out.println(result.get()); // 输出 HELLOOptionalString emptyOptional Optional.empty(); System.out.println(emptyOptional.flatMap(value - Optional.of(value.toUpperCase())).isPresent()); // 输出 false2.2.9 filter() 作用如果 Optional 中有值并且满足给定的条件则返回一个包含该值的 Optional否则返回一个空的 Optional。签名OptionalT filter(Predicate? super T predicate) OptionalInteger optional Optional.of(5); OptionalInteger result optional.filter(n - n 3); System.out.println(result.get()); // 输出 5OptionalInteger result2 optional.filter(n - n 3); System.out.println(result2.isPresent()); // 输出 false2.2.10 ifPresentOrElse() 作用如果 Optional 中有值执行给定的操作否则执行提供的另一个操作。签名void ifPresentOrElse(Consumer? super T action, Runnable emptyAction) OptionalString optional Optional.of(Hello); optional.ifPresentOrElse(value - System.out.println(Value: value), // 输出 Value: Hello() - System.out.println(Value is absent) );OptionalString emptyOptional Optional.empty(); emptyOptional.ifPresentOrElse(value - System.out.println(Value: value),() - System.out.println(Value is absent) // 输出 Value is absent );2.3 使用场景 2.3.1 使用 Optional 返回可能为 null 的值 在方法中返回 Optional 而非直接返回 null避免客户端代码中直接进行 null 值检查。 public OptionalString findUserById(int userId) {User user userRepository.findById(userId);return Optional.ofNullable(user ! null ? user.getName() : null); }OptionalString name findUserById(1); name.ifPresent(System.out::println); // 如果值存在打印用户名2.3.2 使用 Optional 简化链式调用 Optional 可以避免 null 检查并通过 map()、flatMap()、filter() 等方法方便地进行链式调用。 public OptionalAddress getUserAddress(User user) {return Optional.ofNullable(user).map(User::getAddress); }OptionalAddress address getUserAddress(user); address.ifPresent(addr - System.out.println(Address: addr.getStreet()));总结 Optional 提供了一种优雅的方式来处理可能为 null 的值避免了 NullPointerException。常用方法如 map()、filter()、ifPresent()、orElse()、orElseThrow() 等使得对 Optional 的操作更加简洁且安全。使用 Optional 可以有效提高代码的可读性和可维护性尤其是在返回可能为 null 的值时。 通过理解和使用 Optional可以显著降低出现空指针异常的风险优化代码的健壮性。
http://www.w-s-a.com/news/217582/

相关文章:

  • 什么网站做招聘比较好网络营销渠道管理
  • 网站建设选择什么模式淘宝网站可以做轮播吗
  • 山西免费网站制作乌市高新区建设局网站
  • 公司网站建设费用会计处理手机app免费下载
  • 网站的做网站的公司网站有些什么内容
  • 网站新类型wordpress 随机文章
  • 电商网站建设会计分录朝阳市网站公司
  • 正邦网站建设 优帮云百姓网征婚
  • 企业网站有哪些举几个例子端午节网站建设目的
  • 南京免费发布信息网站网站建设与管理职责
  • 无锡市建设培训中心网站企业vi设计是啥
  • 宿松网站建设推荐秒搜科技国家官方网站
  • 网站的服务器选择wordpress文章底部加分享
  • 天津专业的网站建设公司阿里云服务器 wordpress
  • 家教辅导培训网站建设中东跨境电商平台有哪些
  • 商城形式的网站需要多少钱做医药商城网站的公司吗
  • 贵阳网站设计zu97彩票创建网站
  • 网站建设与分工的论文足球世界排名
  • 网站首页添加标签如何用模板建站
  • 官方网站包括哪几个网站泰安的网站建设公司哪家好
  • 域名虚拟服务器做网站如何搭建企业网站
  • 用手机做网站服务器口碑好的常州网站建设
  • 摄影网站的设计与实现开题报告太原企业自助建站
  • 做如美团式网站要多少钱做网站怎么去文化局备案
  • 桂平市住房和城乡建设局网站网站建设与管理自考题
  • 怎么做公司网站制作凡科官方网
  • 达人设计网官方网站建筑效果图网站有哪些
  • 网站定制哪家快建筑室内设计网
  • 网站创建方案论文旅游网站的设计与制作html
  • 网站建设的数据导入导出开发小程序需要多少钱费用