10:39 & ::! 5G (76 随堂测试2 编程题:编写一个iava程序(注:所有代码写在一个文件里),要求如下: 有如下数字字符串: String str="12 34 32 22 32 33 53 42434 33 22 1 123 43 3";数字字符之间用空格分割。 (1) 使用Scanner类将str中的数宇转换 并生成到集合ArrayList中; (2)采用匿名类实现排序(从大到小,并输出。 提示: 比较的泛型接口为:Comparator-Integer-实现的接口方法为:public int compare(Integer 01, Integer o2);
时间: 2024-03-15 16:47:21 浏览: 76
好的,以下是代码示例:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String str = "12 34 32 22 32 33 53 42434 33 22 1 123 43 3";
Scanner scanner = new Scanner(str);
ArrayList<Integer> list = new ArrayList<>();
while (scanner.hasNextInt()) {
int num = scanner.nextInt();
list.add(num);
}
scanner.close();
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(list);
}
}
```
代码解释:
1. 首先定义一个字符串 `str`,包含了数字字符串。
2. 使用 `Scanner` 类读取 `str` 中的数字并转换为 `int` 类型,然后将它们添加到一个 `ArrayList` 中。
3. 接着,使用 `Collections.sort` 方法对 `ArrayList` 进行排序。这里采用了一个匿名类,实现 `Comparator` 接口的 `compare` 方法,以实现从大到小的排序。
4. 最后,输出排序后的 `ArrayList`。
阅读全文