不用list<rectangle>也不用collections.sort的方法
时间: 2024-12-14 12:28:42 浏览: 15
如果你想不用`List<Rectangle>`和`Collections.sort`直接对随机生成的矩形按面积排序,可以使用Java 8的Stream API。这种方法不需要预先创建列表并排序,而是可以在生成矩形的同时进行排序操作。以下是使用Stream的示例:
```java
import java.util.Arrays;
import java.util.Random;
import java.util.stream.IntStream;
class Rectangle {
double length;
double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
public double getArea() {
return length * width;
}
}
public class Main {
public static void main(String[] args) {
Random random = new Random();
int n = 100;
double[][] rectangles = IntStream.range(0, n)
.mapToObj(i -> {
double randomLength = random.nextDouble() * 100;
double randomWidth = random.nextDouble() * 100;
return new Rectangle(randomLength, randomWidth);
})
.toArray(Rectangle[][]::new);
Arrays.sort(rectangles, Comparator.comparingDouble(Rectangle::getArea)); // 根据面积从大到小排序
System.out.println("Sorted rectangles by area:");
for (double[] rect : rectangles) {
System.out.println("Area: " + rect[0].getArea());
}
}
}
```
这个代码片段首先生成了一个二维数组,每一行代表一个矩形。然后,使用`Arrays.sort`函数,传入一个二维数组和一个自定义比较器,按照矩形的面积降序排列。
阅读全文