java如何取list对象中的属性
时间: 2023-04-01 18:01:31 浏览: 162
您好,您可以使用Java中的foreach循环遍历List对象,然后使用对象的getter方法获取属性值。例如:
List<User> userList = new ArrayList<>();
// 假设User类有name属性
for (User user : userList) {
String name = user.getName();
// 对name进行操作
}
相关问题
java对List中对象属性进行排序
可以使用Comparator接口来对List中的对象的属性进行排序,具体步骤如下:
1. 定义一个实现了Comparator接口的类,重写compare方法,在方法中比较两个对象的属性值,返回一个int值,表示比较结果。
例如,对一个Person类的年龄进行排序,可以定义一个AgeComparator类:
```
public class AgeComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
}
```
2. 在需要排序的代码中,调用Collections.sort方法,并将Comparator对象作为参数传入。
例如,对一个List<Person> list进行年龄排序,可以这样写:
```
Collections.sort(list, new AgeComparator());
```
完整示例代码:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
list.add(new Person("Tom", 20));
list.add(new Person("Jerry", 18));
list.add(new Person("Mike", 25));
list.add(new Person("Alice", 22));
Collections.sort(list, new AgeComparator());
for (Person p : list) {
System.out.println(p.getName() + " " + p.getAge());
}
}
static 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;
}
}
static class AgeComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
}
}
```
输出结果:
```
Jerry 18
Tom 20
Alice 22
Mike 25
```
Java中list根据对象属性去重
在Java中,我们可以使用`HashSet`和`Lambda`表达式来根据对象属性去重。
假设有一个对象列表`objList`,其中每个对象都有一个属性`name`,可以按照以下方式进行去重:
```java
List<Obj> newList = objList.stream()
.distinct()
.collect(Collectors.toList());
```
这里的`distinct()`方法会根据对象的`equals()`方法进行去重,我们需要在对象类中重写`equals()`方法,并在其中指定按照`name`属性进行比较:
```java
public class Obj {
private String name;
// getter and setter
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Obj obj = (Obj) o;
return name.equals(obj.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
```
这样就可以根据`name`属性进行去重了。