(JAVA)-Stream流

使用步骤:

1.先得到一条流,并把数据放进去

获取方法

ArrayList<String> list=new ArrayList<>();
 Stream<String> stream1=list.stream();
//单列集合获取
HashMap<String,String> hm=new HashMap<>();
hm.put("abc","111");
 Stream<Map.Entry<String,String>> stream2=hm.entrySet().stream;
//双列集合可以先将集合中的键值对对象放入Set集合中再获取Stream流
int []arr={1,2,3};
Stream<int> stream3=Arrays.stream(arr1);
//数组通过Arrays方法
Stream<T> stream4=Stream.of(1.2.3.4.5);
//零散数据通过Stream接口中的静态方法
//方法的形参是可变参数,可以传递数组,但是传递的必须是引用数据类型,如果传递的是基本数据类型,会将整个数组当成一个元素放入流中

2.利用中间方法对流中数据进行操作

filter:

//list是已经存在的集合
list.stream().filter(
s-> s.stradWith("张")
//s代表集合的每一个数据,return ture表示留下 false表示去掉
)

map:

//泛型第二个数据表示要转换后的数据
list.stream().map(new Function<Sting,Integer>(){
@Override
public Object apply(String s){
int num=Integer.parseInt(s)
return num;
//形参表示流里的每一个数据
返回值表示转换后的数据
}
});

3.Stream终结方法

forEach

list.stream.forEach(s->System.out.println(S));
//s依次表示每一个数据,方法体还可以进行其他操作

 toArray

Object[]arr1= list.stream.toArray();
//默认object
形参
Map.Entry[]arr2=list.stream.toArray(
new InterFunction<?extend Object[]//表示具体类型的数组//>(){
@Override
public Object[] apply(int value){
return new String[value];
}
});

//apply形参:流中数据的个数
//返回值:具体类型的数组
//指定数组,如果放不下会重新创建数组

collect

//将流的数据放入List集合中
ArrayList<String> list=...;
List<String> newList= list.stream().collect(Collectors.toList());
//将流的数据放入Set集合中:会去除重复元素
Set <String> newSet = list.stream().collect(Collectors.toSet ());
//将流的数据放入Map集合中:键不能重复,重复报错
//toMap:参数一:键的生成规则 参数二:表示值的生成规则
Function 泛型一:表示流中每一个泛型的类型,泛型二:表示集合中的数据类型
apply形参:依次表示流里的每一个数据
方法体:生成键的代码
返回值:已经生成的键

Set <String> newMap = list.stream().collect(Collectors.toMap (new Function<String,String>(){

return NULL
},
new Function<String,String>(){

return NULL
}
 ));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值