用java实现随机生30个3位整数,使用匿名类实现接口Comparator完成对30 整数的降序排列。输出排序前后的结果。注意:包装类的使用。
时间: 2024-03-02 20:48:11 浏览: 69
JAVA基础随机整数的生成
5星 · 资源好评率100%
可以使用Java中的Random类和Integer类来生成随机整数和包装整数,使用Arrays类中的sort方法和Comparator接口实现降序排列。具体实现步骤如下:
1. 使用Random类生成30个3位整数:
```java
Random random = new Random();
Integer[] nums = new Integer[30];
for (int i = 0; i < 30; i++) {
nums[i] = random.nextInt(900) + 100;
}
```
使用`nextInt(900) + 100`生成3位整数,`nextInt(n)`方法生成的随机整数范围是[0, n),所以需要加上100。
2. 使用Arrays类的sort方法和Comparator接口实现降序排列:
```java
Arrays.sort(nums, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
```
这里使用了匿名类实现Comparator接口,重写compare方法,返回o2 - o1实现降序排列。
3. 输出排序前后的结果:
```java
System.out.println("排序前:");
System.out.println(Arrays.toString(nums));
System.out.println("排序后:");
System.out.println(Arrays.toString(nums));
```
完整代码如下:
```java
import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
Integer[] nums = new Integer[30];
for (int i = 0; i < 30; i++) {
nums[i] = random.nextInt(900) + 100;
}
Arrays.sort(nums, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println("排序前:");
System.out.println(Arrays.toString(nums));
System.out.println("排序后:");
System.out.println(Arrays.toString(nums));
}
}
```
阅读全文