在 java 循环中节省内存和 CPU

Saving memory and CPU in java loops

我写的这段(显而易见的)代码运行良好,但出于测试目的,我应该通过节省 CPU 周期并在合理的时间内使其适用于 "one million" 大小的数组尽可能多的内存。
有什么建议吗?
!!!数组按升序排列!!!

import java.util.Arrays;

class A {
static boolean exists(int[] ints, int k) {
    for(int integer : ints){
        if(integer == k){
            return true; 
        }
    }
    return false;
}

您可以使用依赖于散列的 Set<Integer> 而不是顺序迭代的数组。

static boolean exists(Set<Integer> ints, int k) {
     return ints.contains(k);
}

您可以将数组转换为 Set 并根据需要多次将其传递给方法:

Set<Integer> set = Arrays.stream(ints).boxed().collect(Collectors.toSet());
boolean isExist = exists(set, 15);
 ...
isExist = exists(set, 5005);
 ...
isExist = exists(set, 355);

由于您的数组是按升序排列的,您可以做的一件事(我认为)是进行二分搜索而不是线性搜索。