无法找到在列表中查找具有相同值的字段的对象的最佳方法。
例如我有一个物体
public class User {
private String name;
private String countryCode;
private String info;
private String code;
}
就我而言,列表中有很多对象。其中一些具有相同的价值观。 如果我有相同的“代码”值或超过 2 个其他值(例如“名称”和“国家代码”),我需要保存它们。
就像我有一样
User user1 = new User("1","DE","1234","BAD");
User user2 = new User("2","FR","4567","GOOD");
User user3 = new User("3","PL","5647","BAD");
我需要保存user1和user3
或者如果我有
User user1 = new User("1","DE","1234","BAD");
User user2 = new User("2","FR","4567","GOOD");
User user3 = new User("3","DE","1234","SOSO");
我需要保存user1和user3。 所以我需要将其涵盖到案例中。
提前谢谢大家!
您可以尝试定义一个比较方法,该方法迭代 User 类的每个变量,如果它们相同则返回 true,如果不同则返回 false。例如:
class User{
int[] variables;
boolean compare(User othUser){
for( int i = 0; i < variables.length; i++){
if(variables[i] == othUser.variables[i]) return true;
}
return false;
}
}
然后只需 user1.compare(user2) 就会返回您正在查找的值。
如果您的变量未存储在数组中,您只需单独调用每个变量即可获得相同的输出和运行时间。
要了解更多信息,Comparator 和 Comparable 接口是一个很好的起点。
希望这有帮助!