Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无需使用比较器即可合并两个对象列表的最优化方法_Java_List_Arraylist_Collections - Fatal编程技术网

Java 无需使用比较器即可合并两个对象列表的最优化方法

Java 无需使用比较器即可合并两个对象列表的最优化方法,java,list,arraylist,collections,Java,List,Arraylist,Collections,您认为,我们如何合并两个列表实现,比如ArrayList,而不必将对象类型实现为Comparable,或者无论如何重写.equals()方法。基本上,不允许对该类进行更改。 现在,该对象有4个属性-code、name、(boolean)、(float)。名称不能用作比较的基础,代码也不一定总是非空值。基本上,要么代码不为null,要么布尔值设置为true。 现在,如果列表中的两个元素相互冲突,则需要将它们的(float)值相加。 我们如何以最优化的方式执行此合并? 这并不是说我们不能使用名称作为

您认为,我们如何合并两个列表实现,比如ArrayList,而不必将对象类型实现为Comparable,或者无论如何重写.equals()方法。基本上,不允许对该类进行更改。 现在,该对象有4个属性-code、name、(boolean)、(float)。名称不能用作比较的基础,代码也不一定总是非空值。基本上,要么代码不为null,要么布尔值设置为true。 现在,如果列表中的两个元素相互冲突,则需要将它们的(float)值相加。 我们如何以最优化的方式执行此合并?
这并不是说我们不能使用名称作为每个对象的唯一标识符,而是问题是名称太长,这意味着字符串比较也会很昂贵

如果您无法更改类以实现Comparable,您仍然可以使用外部对象。

您是否有魔法精灵灰尘,您相信吗?我尝试过使用hashmap-比嵌套循环更好。但是如果条件保持了如此高的复杂性,那么仍然有太多!