比较数组中的数字

时间:2014-05-09 17:16:40

标签: java arrays algorithm

我有一个数字的ArrayList,我想将数字列表与存储在变量中的数字进行比较。

例如,7存储在变量中,我的数组由

组成

5 1 2 4

我如何将数组中的每个数字与其旁边的数字进行比较,看它是否等于7?然后,如果数字相等或小于7,则将它们移动到数字列表的后面。

即5 + 1 = 6但5 + 1 + 2 = 8所以5和1移动到列表的后面,它变为2 4 5 1.

目前我有一些if语句,但是当我运行它时它们没有阻止并且让我超出范围。

编辑: 这就是我到目前为止所涵盖的我想要它做的一个条件。

for(int z = 0; z< sum; z ++)             {

            System.out.println(arr);

            if(arr.get(z) == sum )
            {

                arr.add(z);
                arr.remove(z);
                tot = total2 + arr.get(z);

            }

}

1 个答案:

答案 0 :(得分:0)

这样的事情应该这样做,

public static boolean contains(int[] arr, int v) {
    // need a minimum of two elements to do the addition..
    if (arr == null || arr.length {
        return false;
    }
    // Loop from 0 to 1 less then the length of the array
    for (int i = 0; i < arr.length - 1; i++) {
        // check if the current element + the next element == value
        if (arr[i] + arr[i + 1] == v) {
            return true;
        }
    }
    return false;
}

public static void main(String[] args) {
    System.out.println(contains(new int[] { 5, 1, 2, 4 }, 7)); // false
    System.out.println(contains(new int[] { 5, 2, 4 }, 7)); // true
}

输出

false
true