选择合适的map集合保存五位学员的学号和姓名 然后按照学号的自然顺序的倒序将这些数值一一打印出来
时间: 2024-03-16 14:46:51 浏览: 88
可以使用TreeMap集合来保存学号和姓名,因为TreeMap可以按照键的自然顺序进行排序。下面是示例代码:
```java
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap<>(); // 使用TreeMap保存学号和姓名
// 添加五位学员的学号和姓名
map.put(10001, "张三");
map.put(10002, "李四");
map.put(10003, "王五");
map.put(10004, "赵六");
map.put(10005, "钱七");
// 按照学号的自然顺序的倒序将这些数值一一打印出来
for (int num : map.descendingKeySet()) { // 使用descendingKeySet()方法获取逆序的键集合
System.out.println(num + " " + map.get(num));
}
}
}
```
输出结果为:
```
10005 钱七
10004 赵六
10003 王五
10002 李四
10001 张三
```
相关问题
选择合适的map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。
可以使用TreeMap集合来保存学号和姓名,TreeMap会按照键的自然顺序排序。代码如下:
```
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap<>((o1, o2) -> o2 - o1); // 按学号的自然顺序的倒序排序
map.put(10001, "张三");
map.put(10002, "李四");
map.put(10003, "王五");
map.put(10004, "赵六");
map.put(10005, "钱七");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("学号:" + entry.getKey() + ",姓名:" + entry.getValue());
}
}
}
```
输出结果为:
```
学号:10005,姓名:钱七
学号:10004,姓名:赵六
学号:10003,姓名:王五
学号:10002,姓名:李四
学号:10001,姓名:张三
```
1、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来(要求使用两种遍历方式)(5分钟)
在Java中,我们可以使用`LinkedHashMap`或者`TreeMap`来保存学员的信息,因为它们会保持元素的插入顺序,对于学号的自然顺序倒序打印十分方便。这里我会演示如何使用这两种数据结构。
首先,我们创建一个`LinkedHashMap`,它允许按照插入顺序访问元素:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建学员信息
Map<Integer, String> studentMap = new LinkedHashMap<>();
studentMap.put(5001, "学员A");
studentMap.put(5002, "学员B");
studentMap.put(5003, "学员C");
studentMap.put(5004, "学员D");
studentMap.put(5000, "学员E"); // 学号从大到小
// 遍历并打印倒序学号
// 使用迭代器遍历
Iterator<Map.Entry<Integer, String>> iterator = studentMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("学号:" + entry.getKey() + ", 姓名:" + entry.getValue());
}
// 使用反向迭代器遍历(LinkedHashMap特有的)
iterator = studentMap.descendingKeySet().iterator(); // 或者用Collections.reverseOrder()
while (iterator.hasNext()) {
int key = iterator.next();
System.out.println("学号:" + key + ", 姓名:" + studentMap.get(key));
}
}
}
```
对于`TreeMap`,由于它是基于红黑树实现的,所以默认按照排序规则(这里是自然数的升序)存储,我们需要手动设置其排序顺序为降序,然后遍历:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建学员信息
Map<Integer, String> studentMap = new TreeMap<>(Collections.reverseOrder()); // 设置降序排列
studentMap.put(5001, "学员A");
... // 同样添加其他学员信息
// 使用迭代器遍历(TreeMap自动排序)
for (Map.Entry<Integer, String> entry : studentMap.entrySet()) {
System.out.println("学号:" + entry.getKey() + ", 姓名:" + entry.getValue());
}
}
}
```
阅读全文
相关推荐















