Java List取出某个属性等于某个值的集合
时间: 2023-08-16 07:07:06 浏览: 143
如果您想要从Java的List中获取特定对象属性等于某个值的集合,则可以使用以下代码:
假设我们有一个`Person`类,其中包含`name`和`age`属性:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
现在我们有一个`List`,其中包含多个`Person`对象:
```java
List<Person> personList = new ArrayList<>(Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35),
new Person("David", 40)
));
```
我们想要从`personList`中获取所有`Person`对象的`name`属性等于`Bob`的集合,可以使用以下代码:
```java
List<Person> bobsList = new ArrayList<>();
for (Person person : personList) {
if (person.getName().equals("Bob")) {
bobsList.add(person);
}
}
System.out.println(bobsList);
```
在上述代码中,我们遍历整个`personList`,并将每个`Person`对象的`name`属性与`"Bob"`进行比较。如果相等,我们将该`Person`对象添加到新的`List` `bobsList`中。最后,我们打印`bobsList`,它应该包含所有`Person`对象的`name`属性等于`Bob`的集合。
如果您使用的是Java 8或更高版本,您也可以使用Java Stream API更简洁地编写上述代码:
```java
List<Person> bobsList = personList.stream()
.filter(person -> person.getName().equals("Bob"))
.collect(Collectors.toList());
System.out.println(bobsList);
```
在上述代码中,我们通过调用`stream()`方法将`personList`转换为Java Stream,然后使用`filter()`方法将每个`Person`对象的`name`属性与`"Bob"`进行比较。最后使用`collect()`方法将结果收集到新的`List` `bobsList`中。
阅读全文