
int nums[] =
{
3, 1, 3, 6, 4, 2
};

scanIndexNumber(nums);


nums = new int[]
{
3, 6
};

scanIndexNumber(nums);

/** *//**
*扫描连续数(先验证重复,后验证连续数)
*/

public void scanIndexNumber(int[] nums)
{
//判断重复数和有效数组长度
if (!isNumberOnlyOne(nums) || nums.length == 1)
System.out.println("数据不合法!");

else
{

//返回数组中的最大值和最小值
int[] MinAndMax = scanArrayNumberMinAndMax(nums);

//最小值
int min = MinAndMax[0];

//最大值
int max = MinAndMax[1];


//原始数组的长度
int argsArrayLen = nums.length;

checkIndexNumber(argsArrayLen, min, max);
}
System.out.println();
}




/** *//**
*求出数组中的最小和最大值,返回的结果是一个数组。第一个数是最小值,第二个是最大值。
*/

public int[] scanArrayNumberMinAndMax(int[] nums)
{
//最小值
int min = nums[0];

//最大值
int max = nums[0];


for (int num: nums)
{
//求最大值
if (min > num)
min = num;

//求最大值
if (max < num)
max = num;
}


int[] result = new int[]
{
min, max
};

return result;
}


/** *//**
*验证是否有重复数
*/

public boolean isNumberOnlyOne(int[] nums)
{
//消除重复数据
Set < Integer > s = new HashSet < Integer > ();


for (int num: nums)
{
s.add(num);
}

//原始数组的长度
int argsArrayLen = nums.length;

//不重复的数组个数
int arrayLen = s.size();

return argsArrayLen == arrayLen;
}


/** *//**
*验证连续数
*/

public void checkIndexNumber(int argsArrayLen, int min, int max)
{

//理论上的连续数的总数
int numLen = max - min + 1;

//判断是否为连续数

if (argsArrayLen == numLen)
{
System.out.println("数组的个数= " + argsArrayLen);
System.out.println("理论上的连续数的总数= " + numLen);
System.out.println("Bing Go!");
}
else
System.out.println("非连续数!");
}