编程题:编写一个java程序(注:所有代码写在一个文件里),要求如下: 有如下数字字符串: String str="12 34 32 22 32 33 53 42 4 34 33 22 11 23 43 3";数字字符之间用空格分割。 (1) 使用Scanner类将str中的数字转换并生成到集合ArrayList中; (2) 采用匿名类实现排序(从大到小),并输出。 提示: 比较的泛型接口为:Comparator<Integer> 实现的接口方法为:public int compare(Integer o1, Integer o2);
时间: 2024-03-15 16:46:14 浏览: 9
下面是代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "12 34 32 22 32 33 53 42 4 34 33 22 11 23 43 3";
Scanner scanner = new Scanner(str);
ArrayList<Integer> list = new ArrayList<>();
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
scanner.close();
Collections.sort(list, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(list);
}
}
```
首先,将数字字符串str传入Scanner类中,并通过hasNextInt()方法判断是否还有数字,如果有则将其添加到ArrayList集合中。接着,使用Collections.sort()方法对集合进行排序,采用匿名类实现Comparator<Integer>接口的compare()方法进行比较,从而实现从大到小的排序。最后,输出排序后的结果。