作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 Employee 类:
class Employee {
Employee(String name, int age)
{
this.name = name ;
this.age = age;
}
String name ;
int age;
}
现在创建一个这样的列表:
ArrayList<Employee> aa = new ArrayList<Employee>();
aa.add(new Employee("Nitish", 26));
aa.add(new Employee("Sh", 2));
aa.add(new Employee("S", 1));
我可以获取名称值为“Nitish”的员工对象吗?没有 For 循环
最佳答案
我猜你的面试官只是不希望你使用 for
或 while
循环来查找 ArrayList
中的对象,但你可以实际上找到它们“没有循环”。
首先,你需要覆盖Employee
类的equals
和hashCode
:
@Override public boolean equals(Object obj) {
// ...
}
@Override public int hashCode() {
// ...
}
现在您可以使用 ArrayList.indexOf 找到您的对象(使用 equals
找到匹配)通过创建一个虚拟引用:
Employee target = new Employee("Nitish", 26);
int index = employees.indexOf(target);
这有点傻,但我猜有些面试官希望我们跳出框框思考。即使在引擎盖下它使用循环,但如果我的面试官问我同样的问题,而不是说不,你不能,我会使用这个例子,因为我想尽我最大的努力不按要求使用“循环” ,并解释它在幕后是如何工作的。然后我会简单地想出其他更好的解决方案,希望能奏效!
关于java - 如何在不循环的情况下从 ArrayList 中获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456646/
我是一名优秀的程序员,十分优秀!