Java新特性玩转JDK8之流操作limit和sorted函数
sorted函数
-
类型及功能
- sorted() 对流进行自然排序, 其中的元素必须实现Comparable 接口
- sorted(Comparator<? super T> comparator) 用来自定义升降序
-
代码及示例
- sorted() 对流进行自然排序字母 a - z 升序
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("springboot", "springcloud", "redis", "git", "netty", "java", "html", "docker");
List<String> resultList = list.stream().sorted().collect(Collectors.toList());
System.out.println(resultList);
//[docker, git, html, java, netty, redis, springboot, springcloud]
}
}
- sorted(Comparator<? super T> comparator) 用来自定义升降序
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("springboot", "springcloud", "redis", "git", "netty", "java", "html", "docker");
//根据长度进行排序
// 结果 [git, java, html, redis, netty, docker, springboot, springcloud]
//List<String> resultList = list.stream().sorted(Comparator.comparing(obj -> obj.length())).collect(Collectors.toList());
// 结果 [springcloud, springboot, docker, redis, netty, java, html, git]
// Comparator.reverseOrder() 会让集合中元素的排序反转
//List<String> resultList = list.stream().sorted(Comparator.comparing(obj -> obj.length(),Comparator.reverseOrder())).collect(Collectors.toList());
// 结果 [springcloud, springboot, docker, redis, netty, java, html, git]
List<String> resultList = list.stream().sorted(Comparator.comparing(String::length).reversed()).collect(Collectors.toList());
System.out.println(resultList);
}
}
limit函数
- 功能
- 截断流使其最多只包含指定数量的元素
- 代码及示例
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("springboot", "springcloud", "redis", "git", "netty", "java", "html", "docker");
//limit截取3个
List<String> resultList = list.stream().limit(3).collect(Collectors.toList());
System.out.println(resultList);
}
}