/**
* 发短信的时候我们为确保,短信的唯一性
* 我们把从1开始的自然正整数,作为手机的派号ID,来进行唯一标识。
* 随着时间的推移,将会有很多的废弃短信任然占据着,派号ID,
* 在回收了这些ID的前提下,怎么获取,未使用的最小 自然正整数ID派号了?
*
* 如:正在使用中的ID派号为:6,3,2,1,7
* 那么,你得到的,新派号应该是 4
*
* @author leiwei 2012-09-10
*
*/
public class Demo {
public static void main(String[] args) {
System.out.println(getNewSrcId());
}
private static int getNewSrcId() {
int newSrcId =1;
// int[] values = {};
// int[] values = null;
int[] values = {1,2};
// int[] values = {1};
// int[] values = {5};
// int[] values = {3,2,8};
List<Integer> list = new ArrayList<Integer>();
if(values != null && values.length > 0){
/**有人认为冗余了,直接Arrays.sort(values)就行了。
* 实际工作中values是List<Object>对象集合 **/
for (int i = 0; i < values.length; i++) {
list.add(values[i]);
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
if(list.get(0)==1){
int temp = list.get(i);
if(!list.contains(temp+1)){
newSrcId = temp+1;
return newSrcId;
}
}
}
}
return newSrcId;
}
}