Java 访问对象名称变量以搜索Arraylist中的对象索引时遇到问题

Java 访问对象名称变量以搜索Arraylist中的对象索引时遇到问题,java,Java,目前,我有一个如下代码: cities.get(cities.indexOf(city)).edges.add(新的GraphEdge(cities.indexOf(city)、index、Integer.parseInt(miles)) 其中city是城市名称的变量,我试图访问变量name.equals(city)=true的对象的索引 我意识到:cities.get(cities.indexOf(city))语句正在寻找与city值相等的内存块(我相信?),这显然不会给出我要寻找的内容 如何

目前,我有一个如下代码:

cities.get(cities.indexOf(city)).edges.add(新的GraphEdge(cities.indexOf(city)、index、Integer.parseInt(miles))

其中
city
是城市名称的变量,我试图访问变量
name.equals(city)=true的对象的索引

我意识到:
cities.get(cities.indexOf(city))
语句正在寻找与city值相等的内存块(我相信?),这显然不会给出我要寻找的内容

如何找到变量“name”等于变量“city”的对象的索引?

您可以使用streams

cities.stream().filter(c -> c.getName().equals(city)).findFirst().ifPresent(c -> {
  //do something with the city
});

在我看来,您需要一个自定义的
equals
comparator
来实现
indexOf
方法。看看这个讨论