import java.util.*;
public class TestAa {
private String name;
private Integer id;
public static void main(String[] args) {
List<TestAa> list = new ArrayList<>();
list.add(new TestAa("dehua", 1));
list.add(new TestAa("德华", 2));
list.add(new TestAa("等会", 3));
list.add(new TestAa("德华", 4));
String name = "德华";
//找到name=德华的第一个对象的下标
Optional<Integer> first = list.stream().
filter(i -> Objects.equals(i.getName(), name)).
map(list::indexOf).findFirst();
if (first.isPresent()) {
Integer index = first.get();
System.out.println("true:" + index);
//下标数据交换
Collections.swap(list, 0, index);
} else {
System.out.println("false");
}
list.forEach(System.out::println);
}
public TestAa(String name, Integer id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Override
public String toString() {
return "TestAa{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
}
java list集合使用stream流,根据属性值,找到对应下标,交换位置
最新推荐文章于 2024-09-20 14:44:32 发布
该代码示例展示了如何在Java中利用StreamAPI过滤列表,找到指定名称的对象,并获取其索引。然后,如果找到该对象,它将与列表的第一个元素交换位置。最后,打印出更新后的列表。
摘要由CSDN通过智能技术生成