java实现键盘输入n本书,按照价格从低到高输出,如果价格相同则按照书名的自然顺序排序
时间: 2023-11-09 08:07:37 浏览: 124
可以使用Java中的集合框架中的TreeMap来实现这个功能。
TreeMap是一种有序的Map,它会根据键的自然顺序对元素进行排序。因此,我们可以创建一个TreeMap,将每本书的价格作为键,将每本书的名称作为值,然后遍历TreeMap,输出每本书的名称。
具体的实现代码如下:
```java
import java.util.*;
public class BookSorting {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
// 创建一个TreeMap,用于按照价格排序
TreeMap<Integer, String> bookMap = new TreeMap<>();
// 循环读入n本书,并将它们添加到bookMap中
for (int i = 0; i < n; i++) {
String name = scanner.next();
int price = scanner.nextInt();
bookMap.put(price, name);
}
// 遍历bookMap,按照价格从低到高输出每本书的名称
for (Map.Entry<Integer, String> entry : bookMap.entrySet()) {
System.out.println(entry.getValue());
}
}
}
```
在这个代码中,我们首先读入了一个整数n,表示有n本书需要排序。然后,我们创建了一个TreeMap,用于按照价格从低到高对书籍进行排序。接着,我们循环读入n本书,并将它们添加到bookMap中。最后,我们遍历bookMap,按照价格从低到高输出每本书的名称。
需要注意的是,如果两本书的价格相同,TreeMap会根据书名的自然顺序对它们进行排序。因此,我们不需要额外的代码来处理这种情况。
阅读全文