在 Java 中是否有类似于 C++ 标准库列表的东西,它使用比较器通过其变量之一在列表中查找特定对象?
例如,不是通过检查变量比较来遍历 ArrayList 来查找特定对象。有没有办法使用比较器对象来查找特定实例?
(注意:我不想使用哈希图,因为这会创建两个单独的列表。我想要列表的功能,而不必涉及哈希图。)
像这样的东西,但对于 Java:
#include <algorithm>
using namespace std;
class Cperson
{
string lastname, firstname, address, city;
int zipcode;
char state[3];
// this works for the last name
friend bool operator==(const Cperson& left, const Cperson& right);
friend bool firstEqualTo(const Cperson& left, const Cperson& right);
};
bool operator==(const Cperson& left, const Cperson& right)
{
return left.lastname == right.lastname;
}
bool firstEqualTo(const Cperson& left, const Cperson& right)
{
return left.firstname == right.firstname;
}
现在我们可以在名字字段上搜索我们的个人列表,忽略其他字段:
vector<Cperson> personlist;
// fill personlist somehow
Cperson searchFor; // should contain the firstname we want to find
vector<Cperson>::iterator fperson;
fperson= std::find(personlist.begin(),
personlist.end(),
searchFor,
firstEqualTo);