Java中数组中的数据连续性

时间:2011-06-06 11:39:26

标签: java

我试图看看从数组位置0开始的任何数据系列是否是连续的,因为array [0]的数值为0,array [1]的数值为1,并且等等。例如:

    private void isContiguous(int[] array, int position){
        for(int i = 1; i < array.length; i ++){
            if(!array[i].equals(null)){
                long previous = this.extract_long(array[i - 1], OFFSET);
                long current = this.extract_long(array[i], OFFSET);
                    if((previousOffset/PACKET_LENGTH) < ){

                }
            }
        }
    }

就我能想到的一般解决方案而言。这有点让我大吃一惊,所以得到一些帮助会很好:)

2 个答案:

答案 0 :(得分:2)

开始时的事情:

public static boolean isContiguous(int[] array) {
  for (int i = 0; i < array.length-1; i++) {
     if (array[i+1]-array[i] != 1) {
        return false;
     }
  }
  return true;
}

(我不知道为什么你需要职位,OFFSET等,但上面的代码应该满足书面要求)

答案 1 :(得分:0)

首先,如果你在数组中存储原始int,它们永远不会有空值!数组本身可能为null,但值不能! 其次,如果您要检查的是数组[0] == 0,数组[1] == 1,数组[2] == 2那么您的代码应该像这样简单:

private boolean isContiguous(int []array) {
 if( array == null ) return false;//a null array cannot be contiguous as it doesn't contain any elements!
 for( int i = 0; i < array.length; i++ )
  if( array[i] != i ) return false;
 return true;
}

这不起作用吗?