java - 根据其属性值之一在 ArrayList 中的对象索引

标签 java arraylist

我有一个包含 Book 对象的 ArrayList,如何根据其属性“ID”值获取特定对象的索引?

public static void main(String[] args) {
   ArrayList<Book> list = new ArrayList<>();
   list.add(new Book("foods", 1));
   list.add(new Book("dogs", 2));
   list.add(new Book("cats", 3));
   list.add(new Book("drinks", 4));
   list.add(new Book("sport", 5));

   int index =  
}

这本书类:

public class Book {
    String name;
    int id;

    public Book(String name, int Id) {
        this.name=name;
        this.id=Id;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

}

最佳答案

您可以通过使用 IntStream 生成索引,然后根据您给定的条件使用 filter 操作,然后使用 .findFirst() 检索索引... 如下图:

int index = IntStream.range(0, list.size())
                     .filter(i -> list.get(i).id == searchId)
                     .findFirst()
                     .orElse(-1);

关于java - 根据其属性值之一在 ArrayList 中的对象索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49083998/

相关文章:

java - org.openqa.selenium.InvalidArgumentException : unknown error: unsupported protocol

java - 将类类型作为参数传递以在 ArrayList 中使用?

java - 如果该方法返回枚举,则从 ArrayList 返回什么值?

java - 在 Intent 之间传递类 ArrayList

java - 根据另一个列表的顺序对列表进行排序

java - 在 servlet 中以编程方式调用过滤器(使用 jetty/spark 创建)?

Java Swing 应用程序不会退出

java - 如何实例化在 spring 配置中声明为 bean 的属性?

java - 替换@TransactionConfiguration

java - android-将数组列表转换为自定义格式的一个字符串