遍历集合

调用集合的 public void forEach(Consumer action) 方法,通过 lambda 表达式的方式遍历集合中的元素。以下是 Consumer 接口的方法以及遍历集合的操 作。Consumer 接口是 jdk 为我们提供的一个函数式接

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.function.Consumer;
  4. class ConsumerImp1 implements Consumer{
  5. @Override
  6. public void accept(Object o) {
  7. System.out.println(o);
  8. }
  9. }
  10. public class Test4 {
  11. public static void main(String[] args) {
  12. List<String> list = new ArrayList<>();
  13. list.add("a");
  14. list.add("b");
  15. list.add("c");
  16. list.add("d");
  17. // ConsumerImp1 consumerImp1 = new ConsumerImp1(); //常规方式
  18. // list.forEach(consumerImp1);
  19. list.forEach(System.out::println);
  20. }
  21. }

删除集合中的元素

通过 public boolean removeIf(Predicate filter)方法来删除集合中的某个元 素,Predicate 也是 jdk 为我们提供的一个函数式接口,可以简化程序的编写。

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. public class Test5 {
  4. public static void main(String[] args) {
  5. List<String> list = new ArrayList<>();
  6. list.add("a");
  7. list.add("b");
  8. list.add("c");
  9. list.add("d");
  10. list.removeIf(ele->ele.equals("b"));
  11. list.forEach(System.out::println);
  12. }
  13. }

元素排序

之前我们若要为集合内的元素排序,就必须调用 sort 方法,传入比较器重写 compare 方法的比较器对象,现在我们还可以使用 lambda 表达式来简

  1. import java.util.ArrayList;
  2. import java.util.Comparator;
  3. import java.util.List;
  4. class ComparatorImp1 implements Comparator<String>{
  5. @Override
  6. public int compare(String o1, String o2) {
  7. return o1.compareTo(o2);
  8. }
  9. }
  10. public class Test6 {
  11. public static void main(String[] args) {
  12. List<String> list = new ArrayList<>();
  13. list.add("a");
  14. list.add("c");
  15. list.add("b");
  16. list.add("d");
  17. list.sort(new ComparatorImp1());
  18. list.forEach(System.out::println);
  19. }
  20. }
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);
    }
}