1、List简化使用
在不使用表达式情况下:
List<String> list = Arrays.asList("apple", "banana", "orange");
for (String s:list
) {
System.out.println(s);
}
使用表达式的情况下:
List<String> list = Arrays.asList("apple", "banana", "orange");
// lambada方法(如果是一行输出)
list.forEach(System.out::println);
2、Collections的简化使用
不使用表达式的情况
List<Integer> integerList = Arrays.asList(1, 2);
Collections.sort(integerList, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
使用表达式的情况
List<Integer> integerList = Arrays.asList(1, 2);
Collections.sort(integerList,(Integer o1, Integer o2) -> o1.compareTo(o2));
3、过滤条件下
不使用表达式的情况
ArrayList<String> List2 = new ArrayList<>();
for (String s :
list) {
if (s.startsWith("a")){
arrayList.add(s);
}
}
使用表达式的情况
List<String> list3 = list.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList());
4、 映射
不使用表达式的情况
ArrayList<Integer> List4 = new ArrayList<>();
for (String s:
list) {
List4.add(s.length());
}
使用表达式的情况
List<Integer> List5 = list.stream().map(s -> s.length()).collect(Collectors.toList());
5、累加
不使用表达式的情况
int sum = 0;
for (Integer i:
List6) {
sum += i;
}
使用表达式的情况
Integer sum = List6.stream().reduce(0, (a, b) -> (a + b));
6、分组
不使用表达式的情况
HashMap<Integer, List<String>> groups1 = new HashMap<>();
for (String s:
list) {
int length = s.length();
if (!groups1.containsKey(length)){
groups1.put(length,new ArrayList<>());
}
groups1.get(length).add(s);
}
使用表达式的情况
Map<Integer, List<String>> groups2 = list.stream().collect(Collectors.groupingBy(String::length));
System.out.println(groups2);
7、新建线程
不使用表达式的情况
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("111");
}
}).start();
使用表达式的情况
new Thread(() -> {
System.out.println("111");
}).start();
8、实现接口方法
接口
interface myinterface{
public void dosomthing(String s);
}
不使用表达式的情况
myinterface myinterface = new myinterface() {
@Override
public void dosomthing(String s) {
System.out.println(s);
}
};
myinterface.dosomthing("222");
使用表达式的情况
myinterface myinterface2 = (s) -> System.out.println(s);
myinterface2.dosomthing("222");
9、判断不为空并转换大写
不使用表达式的情况
String str = "hello";
if(str!=null){
System.out.println(str.toUpperCase());
}
使用表达式的情况
Optional.ofNullable(str).map(String::toUpperCase)
.ifPresent(System.out::println);
10、排序
不使用表达式的情况
ArrayList<String> list1 = new ArrayList<>();
for (String s:
list) {
if (s.startsWith("a")){
list1.add(s.toUpperCase());
}
}
Collections.sort(list1);
使用表达式的情况
List<String> list2 = list.stream().filter(s -> s.startsWith("a")).map(String::toUpperCase).sorted().collect(Collectors.toList());