1、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来(要求使用两种遍历方式)(5分钟)
时间: 2024-12-14 09:18:28 浏览: 9
在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());
}
}
}
```
阅读全文