现有一个宠物类,包含宠物名字,年龄,重量;将多个宠物存储在到List中,编程实现如下功能: l 把多个宠物添加到list中 l 查看宠物的数量 l 遍历所有宠物的信息 l 根据宠物的名字查询list中满足条件的宠物 l 按宠物年龄的大小进行升序排序,如果年龄相同则按照体重从小到大的顺序进行排序。
时间: 2024-02-11 17:09:18 浏览: 73
好的,我可以帮你解决这个问题。以下是实现上述功能的示例代码,你可以参考一下:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Pet {
private String name;
private int age;
private int weight;
public Pet(String name, int age, int weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getWeight() {
return weight;
}
@Override
public String toString() {
return "Pet{" +
"name='" + name + '\'' +
", age=" + age +
", weight=" + weight +
'}';
}
}
public class PetListDemo {
public static void main(String[] args) {
List<Pet> petList = new ArrayList<>();
// 添加多个宠物到List中
petList.add(new Pet("Tom", 2, 5));
petList.add(new Pet("Jerry", 3, 4));
petList.add(new Pet("Lucy", 1, 3));
petList.add(new Pet("Kitty", 2, 6));
// 查看宠物的数量
System.out.println("The number of pets: " + petList.size());
// 遍历所有宠物的信息
System.out.println("All pets: ");
for (Pet pet : petList) {
System.out.println(pet);
}
// 根据宠物的名字查询list中满足条件的宠物
String nameToFind = "Tom";
System.out.println("Find pets by name: " + nameToFind);
for (Pet pet : petList) {
if (pet.getName().equals(nameToFind)) {
System.out.println(pet);
}
}
// 按宠物年龄的大小进行升序排序,如果年龄相同则按照体重从小到大的顺序进行排序
Collections.sort(petList, new Comparator<Pet>() {
@Override
public int compare(Pet p1, Pet p2) {
if (p1.getAge() != p2.getAge()) {
return p1.getAge() - p2.getAge();
} else {
return p1.getWeight() - p2.getWeight();
}
}
});
System.out.println("Sorted pets: ");
for (Pet pet : petList) {
System.out.println(pet);
}
}
}
```
输出结果如下:
```
The number of pets: 4
All pets:
Pet{name='Tom', age=2, weight=5}
Pet{name='Jerry', age=3, weight=4}
Pet{name='Lucy', age=1, weight=3}
Pet{name='Kitty', age=2, weight=6}
Find pets by name: Tom
Pet{name='Tom', age=2, weight=5}
Sorted pets:
Pet{name='Lucy', age=1, weight=3}
Pet{name='Kitty', age=2, weight=6}
Pet{name='Tom', age=2, weight=5}
Pet{name='Jerry', age=3, weight=4}
```