我正在Android中使用Java开发一个函数,它接受两个字节数组并执行一些复杂的计算,字节数组来自数据库,因此类似于:
ArrayList<myModel> myList = new ArrayList<>;
myList = readDataFromDataBase();
在myModel中有一个byte[]变量,一旦我从数据库中读取了所有数据,我需要处理byte数组并进行一些计算,如果满足结果,我希望它停止处理。
for(myModel my : myList){
byte[] temp;
temp = my.getByteArray();
if(computeData(temp)){
break;
}
}
如果数据库中只有很少的数据,性能还可以,但如果有1000个数据,性能就很差。
所以我试着用并行流。
myList.parallelStream.forEach()
但似乎没有提高性能。我也试过ExecutorService,还是一样。有什么方法可以优化它吗?任何答案都是赞赏!
1条答案
按热度按时间x3naxklr1#
你可以在阅读数组的时候使用computeData(),并且在需要的时候停止。这样你就不会读到你不想要的数据,并且可以保存一些时间。另外,根据java约定,myModel类中的第一个m应该是大写的。当然,你可以尝试优化这两个方法