作用:处理集合和数组等数据。java8引入的
特点:
- 基于数据源的一种元素序列,可以通过数据源的元素,进行某种操作,比如:过滤、排序、映射等。这些操作不会修改元数据的内容。
- 流支持链式调用,每次操作都会返回一个新的流对象,可以连续操作。
- 流操作可以分为两类:中间操作和终端操作,中间操作是指,对流中的元素进行某种转换或筛选,然后返还一个新的流对象,终端操作是指对流进行最终操作,比如:计算、收集并返回结果。
- 流是可以串行或并行的,在并行流中,多个线程可以同时处理不同的流元素,从而提高程序的效率和性能。
使用:
- 创建一个流
- 使用中间方法
- 使用终端方法
API:
获取Stream流的方法:
package com.pjk.demo;
import java.util.*;
import java.util.stream.Stream;
public class Demo_Stream {
public static void main(String[] args) {
//1.单列集合获取strean流 单列集合有 list set 等等
//2.先创建一个单列集合
ArrayList strings = new ArrayList();
//3.使用collections工具给单列集合添加元素
Collections.addAll(strings, "a", "b", "c", "d", "e");
//4.使用stream流的中间方法获取数据
strings.stream().forEach(System.out::println);
System.out.println("------------------------------------");
//5.双列集合
HashMap map = new HashMap();
map.put("aaa", "111");
map.put("bbb", "222");
map.put("ccc", "333");
map.put("ddd", "444");
map.put("eee", "555");
map.put("fff", "666");
// get stream
Set keySet = map.keySet();
keySet.stream().forEach(System.out::println);
System.out.println("------------------------------------");
Set
stream流的中间方法:
package com.pjk.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Stream;
//stream 中间方法
public class Demo_StreamMiddle {
public static void main(String[] args) {
ArrayList strings = new ArrayList();
Collections.addAll(strings, "张三","张思"服务器托管网,"张思","张思", "张无忌", "李四", "王五", "赵六", "张三丰");
//过滤
strings.stream().filter(s->s.startsWith("张")).filter(s -> s.length()==3).forEach(System.out::println);
System.out.println("----------------------");
//获取前几个
strings.stream().limit(3).forEach(System.out::println);
System.out.println("----------------------");
//跳过
strings.stream().skip(4).forEach(System.out::println);
System.out.println("----------------------");
//去重
strings.stream()服务器托管网.distinct().forEach(System.out::println);
System.out.println("----------------------");
//concat合并流
ArrayList stringsNew = new ArrayList();
Collections.addAll(stringsNew, "吴三","吴思");
Stream.concat(strings.stream(),stringsNew.stream()).forEach(System.out::println);
System.out.println("----------------------");
//类型转换
ArrayList nameAge = new ArrayList();
Collections.addAll(nameAge,"zhangsan-10","lisi-11","wangwu-12");
nameAge.stream()
.map(s->Integer.parseInt(s.split("-")[1]))
.forEach(System.out::println);
}
}
stream的终结方法:
package com.pjk.demo;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author PJK
* stream流终结方法
*/
public class Demo_StreamEnd {
public static void main(String[] args) {
ArrayList strings = new ArrayList();
Collections.addAll(strings,"a","b","c");
//遍历
strings.stream().forEach(System.out::println);
//统计
long count = strings.stream().count();
System.out.println(count);
//收集到数组
String[] array = strings.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array));
System.out.println("-------------------");
//收集到集合里
ArrayList nameGenderAge = new ArrayList();
Collections.addAll(nameGenderAge,"张三-男-18","张四-男-19","张二-女-17","张大-女-21","张无-男-19","张高楼大厦科技-男-37");
nameGenderAge.stream().filter(s -> "男".equals(s.split("-")[1])).forEach(System.out::println);
System.out.println("------------------------");
List collect = nameGenderAge.stream()
.filter(s -> "男".equals(s.split("-")[1]))
.collect(Collectors.toList());
System.out.println(collect);
System.out.println("-----------------");
//收集到set集合
Set set = nameGenderAge.stream().filter(s -> "男".equals(s.split("-")[1]))
.collect(Collectors.toSet());
System.out.println(set);
System.out.println("-------------------");
//收集到map当中
Map map = nameGenderAge.stream()
.filter(s -> "男".equals(s.split("-")[1]))
.collect(Collectors.toMap(
s -> s.split("-")[0],
s -> Integer.parseInt(s.split("-")[2])
));
System.out.println(map);
System.out.println(map);
System.out.println("---------------------");
//并行流
nameGenderAge.parallelStream().forEach(System.out::println);//这里的数据量小 体现不出速度 只是简单说下
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
概述 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,以上是百度百科的解释。 简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这…