根据Java中属性的值在ArrayList中查找对象的索引

JEE*_*ARI 3 java arrays indexing

我正在使用 Java 7。是否可以根据特定属性值获取 ArrayList 中对象的索引。例如:

class Abc{
  String first_name;
  String last_name;
  // getter and setters...
}
Run Code Online (Sandbox Code Playgroud)

现在

List<Abc> abcList = new ArrayList();
Abc abcObj = new Abc();
abcObj.setFirst_name("Jeet");
abcObj.setLast_name("Adhikari");
abcList.add(abcObj);

Abc abcObj2 = new Abc();
abcObj2.setFirst_name("John");
abcObj2.setLast_name("Something");
abcList.add(abcObj2);
Run Code Online (Sandbox Code Playgroud)

现在有没有更好的方法,无需迭代即可获取abcListname = "John"的对象的索引。

Yan*_*ick 5

不,但您可以使用HashMap代替,名字key完整对象value

HashMap<String, Abc> abcMap = new HashMap<String, Abc>();
Abc abcObj = new Abc();
abcObj.setFirst_name("Jeet");
abcObj.setLast_name("Adhikari");
abcMap.put(abcObj.getFirst_name(), abcObj);

Abc abcObj2 = new Abc();
abcObj2.setFirst_name("John");
abcObj2.setLast_name("Something");
abcMap.put(abcObj2.getFirst_name(), abcObj2);
Run Code Online (Sandbox Code Playgroud)

然后你可以通过调用例如来简单地获取完整的对象

Abc objectByKey = abcMap.get("John");
Run Code Online (Sandbox Code Playgroud)

我希望这个替代解决方案也适合您