Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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_Android_Performance_Cpu Usage - Fatal编程技术网

Java 用于阵列比较以提高性能的替代方案

Java 用于阵列比较以提高性能的替代方案,java,android,performance,cpu-usage,Java,Android,Performance,Cpu Usage,我有一个线程,它每一秒比较两个长数组列表(显然一个数组列表发生了变化,所以我进行了比较)。性能降低,CPU利用率大幅提高。我想知道一种提高CPU性能的解决方案。什么是好办法?除了使用数组列表,还有其他方法吗。您可以保留您的ArrayList并只存储它是否已更改。因此,如果您更改它,请执行类似于boolean changed=true的操作。然后,当您想要检查时,您可以只检查if(changed),而不是遍历整个列表。然后记得每次检查时都要设置changed=false。Java Collecti

我有一个
线程
,它每一秒比较两个长
数组列表
(显然一个数组列表发生了变化,所以我进行了比较)。性能降低,CPU利用率大幅提高。我想知道一种提高CPU性能的解决方案。什么是好办法?除了使用数组列表,还有其他方法吗。

您可以保留您的ArrayList并只存储它是否已更改。因此,如果您更改它,请执行类似于
boolean changed=true
的操作。然后,当您想要检查时,您可以只检查
if(changed)
,而不是遍历整个列表。然后记得每次检查时都要设置
changed=false

Java Collections框架包含排序ArrayList(以及与此相关的其他集合)的方法,这些方法的执行效率将高于冒泡排序的实现,即O(n^2),最坏情况下,您将能够实现O(n log n)使用集合

用途如下:

Collections.sort(yourArrayList)

这里有一个用法示例:

这取决于您正在比较什么以及您正在使用什么算法进行比较?您能描述一下您试图通过比较实现什么,以及两个列表中有什么数据吗?我使用的是冒泡排序算法,两个arraylist都包含相同数据类型的对象。您为什么要使用冒泡排序?内置排序函数的加载速度会更快。你能提供关于“内置排序函数”的详细信息吗?但如果只是想更改数据呢?在这种情况下,需要进行比较?问题是我没有更改列表,而是从系统中检索列表。我只是将旧列表与新1进行比较,以检查是否存在错误event@AbhishekB:哦,好的。问题中没有提到这一点。@AbhishekB:为什么不使用观察者模式?这意味着,如果有任何更改,它将自动用该值更新观察者。