gpt4 book ai didi

Java - 对象比较算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:21:10 25 4
gpt4 key购买 nike

我有以下决策表:

Decision table

我的任务是使用选择的属性集(例如{距离容量})将所有对象(S1、S2、S3...)相互比较。所以为了实现这一点,我必须创建两个循环(一个嵌套)并使用 IF 条件。

当对象集很小时,一切正常。但是当集合很大(例如 10000 个对象)时,此解决方案的性能会越来越差......

这是另一种更快、“更智能”的方法吗?

最佳答案

伪代码:

步骤 1。HashMap<String, ArrayList<String>> hashMap = new HashMap<>();
第 2 步. 对每个对象 s 做

String key = getSelectedAttributesValueInString();
if (!hashMap.containsKey(key)) {
hashMap.put(key, new ArrayList<String>());
}
hashMap.get(key).add(s.getName);

在这里getSelectedAttributesValueInString是所有选定属性值的串联。

例如:对象s1属性 {Distance, Capacity}函数返回 ShortYES .

第 3 步。现在打印长度大于 1 的 hashMap arraylist 值。

复杂性分析:

你的方法 O(n^2)

我的方法 O(n)(因为 HashMap 添加和获取复杂度是 O(1))

关于Java - 对象比较算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com