Java中数组中的数据连续性
我试图看看从数组位置0开始的任何数据序列是否连续,即数组[0]的数值为0,数组[1]的数值为1,依此类推。例如:Java中数组中的数据连续性,java,Java,我试图看看从数组位置0开始的任何数据序列是否连续,即数组[0]的数值为0,数组[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
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) < ){
}
}
}
}
private void是连续的(int[]数组,int位置){
for(int i=1;i
大概是我能想到的一般解决方案。这有点让我心烦意乱,所以我很高兴能得到一些帮助:)首先,如果在数组中存储原始int,那么它们永远不会有空值!数组本身可能为空,但值不能为空! 其次,如果您只想检查数组[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;
}
私有布尔值是连续的(int[]数组){
if(array==null)返回false;//null数组不能是连续的,因为它不包含任何元素!
for(int i=0;i
这样不行吗 首先要做的是:
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;
}
公共静态布尔值是连续的(int[]数组){
for(int i=0;i
(我不知道为什么需要位置、偏移量等,但上面的代码应该满足书面要求)如果要检查某个内容是否为空,则应使用
something!=空
。因此,请将if行更改为if(array[i]!=null)
。偏移量、提取和数据包链接是什么?不管怎样,如果要检查int值,为什么需要long…?即使阅读代码,我也不理解您的问题。提取长度和数据包长度从何而来?顺便说一句,int
确实有一个equals()方法,而且从来都不是null
@helios,array
是一个int[]
,所以你不能与null
@samp比较,如果你知道这个数组的唯一有效组合是有一个给定的间距,那么为什么要有这个数组呢,你应该能够用一个简单的函数来计算每个值,并且没有数组可以验证。是的,伙计们,我有点忘了修改它,以便在一般设置中更合理。如果可能的话,忽略类型错误并关注问题。这是一个有趣的方法,但它不是一个通用的解决方案。占位符“int”可以是任何数字。我可能会再次问这个问题,因为我想我可能已经用垃圾代码把更多的人弄糊涂了。我会说空数组是连续的,因为空数组也是连续的。(). 为了避免讨论/混淆,最好抛出NullPointerException?这是最好的解决方案。谢谢:)@samp,如果这是解决方案,您根本不需要数组,而不是array[n]
您可以只写first\u value+n