1.循环输出List
List<string> list1 = Arrays.asList(new String []{"zhangSan","liSi","wangWu","zhaoLiu","tianQi"});
//原来的方式
forEach(String str:list1){
System.Out.Println(str);
}
//lambda表达式
list1.forEach(str -> System.Out.Println(str));
//或者
list1.forEach(System.Out::println);
2.循环输出Map
Map<String, Object> map = new HashMap<>();
map.put("A", 20);
map.put("B", 30);
map.put("C", 60);
map.put("D", 10);
map.put("E", 100);
//原来的方式
Set<string> set = map.keySet();
forEach(String str : set){
System.Out.Println(str+":"+map.get(str)+",");
}
//lambda表达式
map.forEach((k,v) -> System.Out.Println(k+":"+ v +","););
3.对集合进行排序
List<Integer> list = Arrays.asList(new Integer[]{19,2,3,5,12});
//原来的方式
Collections.sort(list,new Comparator<Integer>(){
@Override
public int compare(Integer a,Integer b){
return a.compareTo(b);
}
});
//lambda表达式
Collections.sort( list , (a , b) -> a.compareTo(b));
4.将对象集合(List) 中的属性取出放入另一个 List
//Test 中有num,answer,score三个属性
List<Test> list = Arrays.asList(setValue("1", "a", 21.0), setValue("2", "b", 15.0), setValue("3", "d", 15.0), setValue("6", "c", 15.0));
public static Test setValue(String tNum, String answer, double score) {
Test ssa = new Test();
ssa.setNum(tNum);
ssa.setDaAn(answer);
ssa.setScore(score);
return ssa;
}
//原来的方法
List<String> temp = new ArrayList<>();
for(Test ssa : list){
temp.add(ssa.getDaAn);
}
//lambda表达式
List<String> temp = list.stream().map(d->d.getDaAn).collect(Collectors.toList());
5.将一个集合中的对象的值,组成另一个对象的集合
//Test 中有Num,daAn,score三个属性
//Test2中有answer,score
List<Test> list = Arrays.asList(setValue("1", "a", 21.0), setValue("2", "b", 15.0), setValue("3", "d", 15.0), setValue("6", "c", 15.0));
public static Test setValue(String tNum, String answer, double score) {
Test ssa = new Test();
ssa.setNum(tNum);
ssa.setDaAn(answer);
ssa.setScore(score);
return ssa;
}
//原来的方法
List<Test2> list2 = new arrayList<>();
for(Test test : list){
Test2 test2 = new Test2();
test2.setAnswer(test.getAnswer());
test2.setScore(test.getScore());
list2.add(test2);
}
//lambda表达式
List<Test2> result = list.stream().map(temps ->{
Test2 test2 = new Test2();
test2.setAnswer(test.getAnswer());
test2.setScore(test.getScore());
return test2;
}).cellect(Collectors.toList());
6.处理list集合中的数据
//list集合所有的字符串转成大写
List<String> list = Arrays.asList("zhangsan","lisi","wangwu","zhaoliu");
//原来的方式
for(int i=0;i<list.size();i++){
list.get(i).toUperCase();
}
//使用lambda表达式
list.stream().map(t -> t.toUpperCase()).collect(Collectors.toList()).forEach(System.out::println);
7.处理List集合,并转化为其他集合
List<String> list = Arrays.asList("zhangsan","lisi","wangwu","zhaoliu");
//将list中的元素全部转化成大写,并保持List形态
List<String> result = list.stream().map(x -> x.toUpperCase()).collect(Collectors.toList());
//将list中的元素全部转化为大写,并转化为String类型,元素之间通过“,”分割
String result = list.Stream().map(x -> x.toUpperCase()).collect(Collectors.joining(","));
//将list中的元素全部转化为大写,并转化为Set<String>类型
Set<String> result = list.Stream().map(x -> x.toUpperCase()).collect(Collector.toSet());
8.取出List<Integer>集合的“最值”,“平均值”等
List<Integer> list = Arrays.asList(4,5,2,3,6,8,95,213,452,12,5,6,9,9);
IntSummaryStatistics re = lists.stream().mapToInt(x->x).summaryStatistics();
System.out.println("平均值:"+re.getAverage());
System.out.println("最大值:"+re.getMax());
System.out.println("最小值:"+re.getMin());
System.out.println("求和:"+re.getSum());
9.List<String>转化为 String [] array
List<String> list =Arrays.asList("zhangSan","liSi","wangWu","zhaoLiu");
String [] arr = list.stream().toArray(String::new);
Object [] arr = list.stream().toArray();
String [] arr = list.stream().toArray(str -> new String[list.size()])