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

如何查询网站打开速度php网站后台登陆不了

如何查询网站打开速度,php网站后台登陆不了,广西壮族自治区警官学校,生产管理erp系统哪家的好Java 8引入了一种新的抽象概念——流(Stream),它允许我们以声明式方式处理数据集合。通过使用流,可以更简洁、更易读地编写代码来对集合进行复杂的操作,如过滤、映射、排序等。本文将介绍Java 8的流操作的基本概念和使…

Java 8引入了一种新的抽象概念——流(Stream),它允许我们以声明式方式处理数据集合。通过使用流,可以更简洁、更易读地编写代码来对集合进行复杂的操作,如过滤、映射、排序等。本文将介绍Java 8的流操作的基本概念和使用方法。

 

创建流

要使用流,首先需要创建一个流。流可以从多种数据源创建,如数组、集合、文件等。以下是一些创建流的示例:

// 从数组创建流
int[] numbers = {1, 2, 3, 4, 5};
IntStream intStream = Arrays.stream(numbers);// 从集合创建流
List<String> names = Arrays.asList("张三", "李四", "王五");
Stream<String> nameStream = names.stream();// 从文件创建流
try (Stream<String> lines = Files.lines(Paths.get("example.txt"))) {lines.forEach(line -> {/*TODO:逐行处理文件内容*/ });
} catch (IOException e) {e.printStackTrace();
}

 

中间操作

中间操作是对流中的元素进行某种处理的操作,例如过滤、映射、排序等。中间操作不会改变流本身,而是返回一个新的流,因此可以通过链式调用方法组合多个中间操作。以下是一些常见的中间操作:

// 过滤元素
IntStream evenNumbers = intStream.filter(n -> n % 2 == 0);// 转换元素
Stream<Integer> evenNumbers1 = evenNumbers.mapToObj(Integer::new);// 映射元素
Stream<String> upperCaseNames = nameStream.map(String::toUpperCase);// 排序元素
Stream<String> sortedNames = nameStream.sorted();
Stream<String> revSortedNames = names.stream().sorted(Comparator.reverseOrder());

 

终端操作

终端操作是对流进行最终处理的操作,例如计算结果、遍历元素等。终端操作会消耗流,即执行后流将不再可用。以下是一些常见的终端操作:

// 计算结果(如求和、平均值等)
// 注意:实际使用时,一个流只能使用一次,再次使用需要重新生成流,否则会收到下列异常:
// java.lang.IllegalStateException: stream has already been operated upon or closed
double average = intStream.average().orElse(0);
int sum = intStream.sum();
long count = intStream.count();
OptionalInt max = intStream.max();
OptionalInt min = intStream.min();// 遍历输出每个元素
intStream.forEach(System.out::println);// 收集到列表中
List<Integer> numbersList = intStream.collect(Collectors.toList());

 

并行流

Java 8还提供了并行流(Parallel Stream),它可以充分利用多核处理器的优势,提高处理速度。要创建一个并行流,只需在创建流时调用parallel()方法或者使用parallelStream()创建流即可:

// 创建一个并行流
IntStream parallelIntStream = intStream.parallel();
Arrays.asList("张三", "李四", "王五").parallelStream();

需要注意的是,并非所有情况下都适合使用并行流。在某些情况下,由于线程切换的开销,并行流的性能可能不如串行流。因此,在使用并行流时,需要根据具体情况进行权衡。
 

 

示例:产品分组

使用流可以方便地处理数据,如过滤列表中库存大于0的产品,然后按产品类型进行分组。以下为简单的代码示例,其中省去了代码运行非必需的getter()和toString()方法:

public static void main(String[] args) {List<Product> list = new ArrayList(){{add(new Product(1, 1, 0, "prod1"));add(new Product(2, 1, 5, "prod2"));add(new Product(3, 2, 10, "prod3"));add(new Product(4, 2, 11, "prod4"));add(new Product(5, 2, 0, "prod5"));}};Map<Integer, List<Product>> map = list.parallelStream() // 创建并行流.filter(product -> product.getInventory() > 0) // 过滤库存大于0的产品.collect(Collectors.groupingBy(Product::getProductType)); //分组后收集到Map中System.out.println(map);
}public static class Product {int productId;int productType;int inventory;String productName;public int getProductType() {return productType;}public int getInventory() {return inventory;}public Product(int productId, int productType, int inventory, String productName) {this.productId = productId;this.productType = productType;this.inventory = inventory;this.productName = productName;}
}

 

总结

Java 8的流操作带来了数据处理的革命性突破,让开发者能够更方便、更简洁地处理数据。通过链式调用方法,开发者能够清晰地表达数据处理逻辑,提高代码的可读性和可维护性。同时,流操作还提供了高性能、类型安全和可扩展性等优势,使得开发者能够根据实际需求灵活地处理数据。

 

http://www.yayakq.cn/news/892522/

相关文章:

  • 企业建立企业网站有哪些优势?wordpress 页面 自定义
  • 网站建设的运用场景东莞网站seo优化
  • 邢台做网站优化费用网站语音转写怎么做
  • wordpress 网站小模块市场监督管理局注册公司流程
  • 合肥做网站优化南昌网站建设公司服务
  • 简易网站建设维护专业建站服务公司
  • 中国建设银行春招网站西宁建网站需要多少钱
  • 网站升级 云南省建设注册考试中心平面设计主要学哪些软件
  • 免费建立网站的有哪里广州平台网站搭建
  • 涉县企业做网站推广对象存储链接WordPress
  • 社交网站开发流程潍坊哪个网站建设公司好
  • 旅游网站开发目的6黑镜主题2.0wordpress
  • 网站技能培训台州网络推广
  • 网站模板修改器中国互联网公司排名2022
  • 下载中心官方网站建设银行个人网站建设背景和目的
  • 自己建一个网站需要什么网页设计图片作品
  • 个人网站备案核验单wordpress修改宽度
  • 如何做网站seo诊断南山做网站
  • 玉树电子商务网站建设多少钱学生成绩管理系统 网站建设
  • 网站建设分金手指专业六网站空间送域名价格表
  • google属于搜索引擎类网站.wordpress写的软文
  • python用于网站开发昌平石家庄网站建设
  • 网站栏目管理建设那个有那种网站
  • 太原市做网站好的科技公司烟台微网站建设
  • 网站建设程序温江网站建设
  • 网站电脑培训班附近有吗服务器部署wordpress
  • 外贸网站搭建服务商写小说赚钱的网站
  • 网站建设028百度品牌专区怎么收费
  • 网站建设需要哪些材料网络营销推广引流方法
  • 电子商务网站技术网站中转页怎么做