【发布时间】:2015-10-18 02:14:43
【问题描述】:
有一个对象,汽车,它被定义为,
class Cars{
String make;
String model;
String year;
....
}
对Object的几个限制:
品牌、型号和年份可以取任何值。
不能有两个具有相同属性集的对象。例如,不能有
car1 = { make : "Audi", model : "A6", year : "2008" }和car2 = { make : "Audi", model : "A6", year : "2008"}
假设我与一个服务交谈,该服务为我提供了所有汽车对象的列表。我有一个输入(品牌、型号、年份)。我的工作是从列表中选择汽车对象(由服务返回)。我应该这样做,以便我会选择匹配尽可能多的属性的对象。
让我举个例子。假设我从服务中获得了 5 辆汽车的列表,
car1 = { make : "", model : "A6", year : "2008" }
car2 = { make : "Audi", model : "", year : "2008" }
car3 = { make : "Audi", model : "A6", year : "" }
car4 = { make : "", model : "", year : "" }
car5 = { make : "BMW", model : "M3", year : "2009" }
如果我的输入是
{make : "Audi", model : "A6", year : "2008"}
我应该只能从列表中选择一辆车。如果相同数量的参数匹配,我应该优先考虑品牌 > 型号 > 年份。在上述情况下,我应该选择 car3。
如果我的输入是
{ make : "Mercedes", model : "C300", year : "2008" }
我应该选择car4 = { make : "", model : "", year : "" }(通用的)
关于解决此问题和/或伪代码的任何建议?
【问题讨论】:
-
你尝试了什么?如果我有两辆汽车,一辆是
{make: 'Audi', model: '', year: ''},一辆是{make : "", model : "A6", year : "2008"},在你的例子中会发生什么? -
在这种情况下,我会选择第二个。只有当我们的汽车具有相同数量的匹配参数时,优惠待遇才适用。
标签: java arrays list sorting object