写一个Java程序,需求描述: 有一个农村,有若干户家庭,每户家庭分得若干土地,土地的形状不一。需要大家写一个程序,帮助村长计算本村人均土地面积。需要用集合的知识
时间: 2024-12-14 12:23:45 浏览: 27
在Java中,我们可以创建一个简单的程序来满足这个需求。首先,我们可以定义一个`Land`类,代表一块土地,包含面积属性以及形状信息。然后,我们再定义一个`Family`类,每个家庭拥有一定的土地。为了表示集合,我们可以使用`ArrayList`或`HashMap`来存储所有家庭及其拥有的土地。
```java
import java.util.ArrayList;
import java.util.HashMap;
class Land {
private double area; // 土地面积
private String shape; // 土地形状
public Land(double area, String shape) {
this.area = area;
this.shape = shape;
}
// 获取面积和形状的方法
public double getArea() {
return area;
}
public String getShape() {
return shape;
}
}
class Family {
private HashMap<String, Land> lands; // 家庭的土地集合
public Family() {
lands = new HashMap<>();
}
// 添加、获取土地的方法
public void addLand(String id, Land land) {
lands.put(id, land);
}
public double getTotalArea() {
double totalArea = 0;
for (Land land : lands.values()) {
totalArea += land.getArea();
}
return totalArea;
}
}
public class Village {
private ArrayList<Family> families; // 所有家庭
public Village() {
families = new ArrayList<>();
}
// 添加家庭
public void addFamily(Family family) {
families.add(family);
}
public double calculateAverageLandPerPerson(int population) {
double totalArea = 0;
for (Family family : families) {
totalArea += family.getTotalArea();
}
return totalArea / population;
}
// 示例如何使用
public static void main(String[] args) {
Village village = new Village();
// 创建家庭并添加土地...
Family family1 = new Family();
family1.addLand("id1", new Land(50, "方形"));
family1.addLand("id2", new Land(30, "圆形"));
village.addFamily(family1);
int population = 100; // 村庄人口
System.out.println("人均土地面积: " + village.calculateAverageLandPerPerson(population));
}
}
```
在这个示例中,我们先定义了土地和家庭类,然后在`Village`类里,通过`ArrayList`管理所有的家庭,并计算平均人均土地面积。`calculateAverageLandPerPerson`方法就是根据村庄总人口和所有家庭土地总面积来计算平均值。
阅读全文
相关推荐


















