Java中有一个集合对象中有一个字段为A使用stream来实现获取A不同的对象的下标集合若是有相同的则忽略只取第一个获取的
可以使用Java Stream的distinct()和findFirst()方法来实现获取字段A不同的对象的下标集合,并且只取第一个获取的对象的下标。
假设你有一个集合List<MyObject>,其中MyObject类包含一个字段A,你可以按照以下方式实现:
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> list = ...; // 假设你已经有一个集合List<MyObject>
int index = list.stream()
.mapToInt(list::indexOf) // 获取对象的下标
.distinct() // 去除重复的下标
.findFirst() // 获取第一个下标
.orElse(-1); // 如果没有找到,则返回-1
System.out.println("第一个获取到的不同对象的下标为:" + index);
}
}
class MyObject {
private int A;
// 构造方法、getter和setter省略
}
在上面的例子中,我们使用mapToInt()方法将对象映射为它们在集合中的下标,然后使用distinct()方法去除重复的下标,再使用findFirst()方法获取第一个下标。如果没有找到不同的对象,findFirst()方法将返回一个空的Optional对象,我们可以使用orElse()方法指定一个默认值(这里使用-1)。
最后,我们打印输出第一个获取到的不同对象的下标
原文地址: https://www.cveoy.top/t/topic/iFqw 著作权归作者所有。请勿转载和采集!