操作集合

一 遍历集合

我们可以调用集合的 public void forEach(Consumer<? super E> action) 方法,通过

lambda 表达式的方式遍历集合中的元素。以下是 Consumer 接口的方法以及遍历集合的操

作。Consumer 接口是 jdk 为我们提供的一个函数式接口。

class ConsumerImpl 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");
ConsumerImpl C=new ConsumerImpl();
// list.forEach(C);
list.forEach(System.out::println);
}
}//a b c


二 删除集合中的元素

我们通过 public boolean removeIf(Predicate<? super E> filter)方法来删除集合中的某个元

素,Predicate 也是 jdk 为我们提供的一个函数式接口,可以简化程序的编写。

/**
* @Author yqq
* @Date 2021/5/15 2:23
* @Version 1.0
*/
public class Test5 {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.removeIf(e -> e.startsWith("b"));
list.forEach(System.out::println);
}
}


三 元素排序

之前我们若要为集合内的元素排序,就必须调用 sort 方法,传入比较器重写 compare

方法的比较器对象,现在我们还可以使用 lambda 表达式来简化代码。

/**
* @Author yqq
* @Date 2021/5/15 2:31
* @Version 1.0
*/
class ComparatorImpl 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("e");
list.add("d");
// list.sort(new ComparatorImpl());
//Lambda简化排序
list.sort(((o1, o2) -> o1.compareTo(o2)));
list.forEach(System.out::println);
//a b c d e
}
}