在对象的ArrayList中查找字符串-java

在对象的ArrayList中查找字符串-java,java,object,arraylist,equals,Java,Object,Arraylist,Equals,我写了一个由ArrayList组成的程序, 其中包含对象。 每个对象都有一个名称。 我想在ArrayList中找到与使用scanner输入的索引同名的索引。我尝试了以下代码,但它不起作用。 q=0; 而(!naziv.equals(racuni.get(q).getNaziv()) q++首先,让我们清楚地格式化代码 String name = sc.next(); int q=0; while(q < object.size() && !name.equals(objec

我写了一个由ArrayList组成的程序, 其中包含对象。 每个对象都有一个名称。 我想在ArrayList中找到与使用scanner输入的索引同名的索引。我尝试了以下代码,但它不起作用。
q=0;
而(!naziv.equals(racuni.get(q).getNaziv())

q++

首先,让我们清楚地格式化代码

String name = sc.next();
int q=0;
while(q < object.size() && !name.equals(object.get(q).getName())) {
  q++;
}
//如果您写“duck”,则打印0

//如果你写“鸡”就打印1


//如果编写“notinaraylist”,则打印2在JAVA8中解决此问题的简单方法是使用流

如果元素在列表中可用,它将打印元素的第一个索引,否则返回-1

OptionalInt findFirst = IntStream.range(0, objects.size())
.filter(object-> objects.get(object).getName().equals(nextLine))
.findFirst();
System.out.println(findFirst.isPresent() ? findFirst.getAsInt() : -1);

因为数组列表包含两个对象。其中一个索引为0,另一个索引为oneCheck qOptionalInt findFirst = IntStream.range(0, objects.size()) .filter(object-> objects.get(object).getName().equals(nextLine)) .findFirst(); System.out.println(findFirst.isPresent() ? findFirst.getAsInt() : -1);