使用Lambda表达式,结合TreeSet集合实现数字倒序排序,即从大到小的排序。
时间: 2024-01-21 08:18:24 浏览: 30
可以使用Lambda表达式来实现TreeSet集合中的自定义比较器,从而实现数字倒序排序。代码如下:
```java
TreeSet<Integer> set = new TreeSet<>((a, b) -> b - a);
```
在这个比较器中,Lambda表达式 `(a, b) -> b - a` 表示如果 `b - a` 的值大于0,则认为b大于a,因此将b排在a的前面,从而实现数字倒序排序。
完整代码如下:
```java
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>((a, b) -> b - a);
set.add(1);
set.add(3);
set.add(2);
set.add(5);
set.add(4);
System.out.println(set); // [5, 4, 3, 2, 1]
}
}
```
相关问题
(14-1)使用Lambda表达式,结合TreeSet集合实现数字倒序排序,即从大到小的排序。java
可以使用以下代码实现:
```java
TreeSet<Integer> set = new TreeSet<>((a, b) -> b - a);
set.add(3);
set.add(1);
set.add(5);
set.add(2);
System.out.println(set); // 输出 [5, 3, 2, 1]
```
在这里,我们创建了一个 TreeSet 对象,并传入了一个 Lambda 表达式作为比较器。这个比较器将会根据传入的两个参数(即集合中的两个元素)进行排序,返回值为正数表示第二个参数大于第一个参数,返回值为负数表示第一个参数大于第二个参数,返回值为 0 表示两个参数相等。这里我们使用 `b - a` 来实现从大到小的排序。
然后我们向集合中添加了一些数字,最后打印出来时可以看到它们已经按照从大到小的顺序排列了。
hashmap使用lambda表达式按照value大小排序
可以使用Java 8的Stream API和lambda表达式来对HashMap按照value大小进行排序。下面是一个示例代码:
```java
import java.util.*;
public class HashMapSortByValue {
public static void main(String[] args) {
// 创建一个HashMap
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("A", 5);
hashMap.put("B", 2);
hashMap.put("C", 8);
hashMap.put("D", 3);
// 使用Stream API对HashMap按照value进行排序
List<Map.Entry<String, Integer>> sortedList = new ArrayList<>(hashMap.entrySet());
sortedList.sort(Map.Entry.comparingByValue());
// 打印排序后的结果
sortedList.forEach(entry -> System.out.println(entry.getKey() + ": " + entry.getValue()));
}
}
```
这段代码首先创建了一个HashMap,并向其中添加了一些键值对。然后,使用`entrySet()`方法将HashMap转换为一个包含键值对的Set。接下来,使用Stream API对Set中的元素按照value进行排序,使用`comparingByValue()`方法指定按照value进行比较。最后,将排序后的结果打印出来。
运行以上代码,输出结果如下:
```
B: 2
D: 3
A: 5
C: 8
```
可以看到,HashMap中的键值对已按照value的大小进行了排序。