带有集合的 Java 表达式
原文:https://www . geesforgeks . org/Java-lambda-expression-with-collections/
本文讨论了带有集合的 Lambda 表达式,并举例说明了如何对不同的集合进行排序,如数组列表、树集、树图等。
使用比较器(或不使用 Lambda)对集合进行排序: 我们可以使用比较器界面进行排序,它只包含一个抽象方法:–compare()。一个只包含一个抽象方法接口被称为功能接口。
-
Use of Comparator(I): –
要定义我们自己的排序,即我们自己定制的排序,那么我们应该使用比较器的概念。
-
Prototype of compare() method: –
compare()方法以两个对象作为参数。
```java public int compare(Object obj1, Object obj2)
```
在定义我们自己的排序时,JVM 总是要调用 Comparator compare()方法。
-
当且仅当 obj1 必须在 obj2 之前时,返回负值(-1)。 当且仅当 obj1 必须在 obj2 之后时,返回正值(+1)。 returns zero(0), if and only if obj1 and obj2 are equal.
在列表、集合、映射或其他任何地方,当我们想要定义自己的排序方法时,JVM 总是在内部调用 compare()方法。
当使用了功能接口概念时,那么我们可以在它的位置使用 Lambda 表达式。
使用 lambda 表达式对列表(I)的元素进行排序:– 使用 Lambda 表达式代替比较器对象来定义我们自己在集合中的排序。
```java import java.util.*;
public class Demo { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(205); al.add(102); al.add(98); al.add(275); al.add(203); System.out.println("Elements of the ArrayList " + "before sorting : " + al);
// using lambda expression in place of comparator object Collections.sort(al, (o1, o2) -> (o1 > o2) ? -1 : (o1 < o2) ? 1 : 0);
System.out.println("Elements of the ArrayList after" + " sorting : " + al); } } ```
Output:
```java Elements of the ArrayList before sorting : [205, 102, 98, 275, 203] Elements of the ArrayList after sorting : [275, 205, 203, 102, 98]
```
使用λ表达式对树集进行排序:–
```java import java.util.*;
public class Demo { public static void main(String[] args) { TreeSet h = new TreeSet((o1, o2) -> (o1 > o2) ? -1 : (o1 < o2) ? 1 : 0); h.add(850); h.add(235); h.add(1080); h.add(15); h.add(5); System.out.println("Elements of the TreeSet after" + " sorting are: " + h); } } ```
Output:
```java Elements of the TreeSet after sorting are: [1080, 850, 235, 15, 5]
```
使用 Lambda 表达式对 TreeMap 的元素进行排序:– 排序将根据关键字而不是其值进行。
```java import java.util.*;
public class Demo { public static void main(String[] args) { TreeMap m = new TreeMap((o1, o2) -> (o1 > o2) ? -1 : (o1 < o2) ? 1 : 0); m.put(1, "Apple"); m.put(4, "Mango"); m.put(5, "Orange"); m.put(2, "Banana"); m.put(3, "Grapes"); System.out.println("Elements of the TreeMap " + "after sorting are : " + m); } } ```
Output:
```java Elements of the TreeMap after sorting are : {5=Orange, 4=Mango, 3=Grapes, 2=Banana, 1=Apple}
```
版权属于:月萌API www.moonapi.com,转载请注明出处