遍历集合
调用集合的 public void forEach(Consumer action) 方法,通过 lambda 表达式的方式遍历集合中的元素。以下是 Consumer 接口的方法以及遍历集合的操 作。Consumer 接口是 jdk 为我们提供的一个函数式接
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
class ConsumerImp1 implements Consumer{
@Override
public void accept(Object o) {
System.out.println(o);
}
}
public class Test4 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
// ConsumerImp1 consumerImp1 = new ConsumerImp1(); //常规方式
// list.forEach(consumerImp1);
list.forEach(System.out::println);
}
}
删除集合中的元素
通过 public boolean removeIf(Predicate filter)方法来删除集合中的某个元 素,Predicate 也是 jdk 为我们提供的一个函数式接口,可以简化程序的编写。
import java.util.ArrayList;
import java.util.List;
public class Test5 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.removeIf(ele->ele.equals("b"));
list.forEach(System.out::println);
}
}
元素排序
之前我们若要为集合内的元素排序,就必须调用 sort 方法,传入比较器重写 compare 方法的比较器对象,现在我们还可以使用 lambda 表达式来简
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class ComparatorImp1 implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
}
public class Test6 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("c");
list.add("b");
list.add("d");
list.sort(new ComparatorImp1());
list.forEach(System.out::println);
}
}
import java.util.ArrayList;
import java.util.List;
public class Test6 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("c");
list.add("b");
list.add("d");
list.sort((o1,o2)->o1.compareTo(o2));
list.forEach(System.out::println);
}
}