如何从一个不连续的整型数组中,取出空缺的数字重新组成一个数组?

huixiangdou 2009-06-07 03:49:05
如何从一个不连续的整型数组中,取出空缺的数字重新组成一个数组?

如有个数组,里面存放的是数字:
int[] a = {1,2,3,6,7,9,11};

取出空缺的数字重新组成一个数组:
int[] b = {4,5,8,10};

请教,这个新数组如何生成
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwjieNo1 2009-06-07
  • 打赏
  • 举报
回复
同意楼上的,先对a数组进行从小到大排序,然后进行运算
JayPan2008 2009-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 0210 的回复:]
Java code
int[] b = new int[a[a.length-1]-a.length];
int idx=0;
int a1 = 0;
int a2
for(int i=0;i<a.length;i++)
{
a2 = a[i];
for(int j=1;j<a2-a1;j++)
{
b[idx++]=a1+j;
}
a1 = a2;
}
[/Quote]

这个比较简单,首先最好对a排下序
世宝宝 2009-06-07
  • 打赏
  • 举报
回复

int[] b = new int[a[a.length-1]-a.length];
int idx=0;
int a1 = 0;
int a2
for(int i=0;i<a.length;i++)
{
a2 = a[i];
for(int j=1;j<a2-a1;j++)
{
b[idx++]=a1+j;
}
a1 = a2;
}
knightzhuwei 2009-06-07
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.Arrays;

public class Test1 {
public static void main(String args[]) {
int[] a = {1,2,3,6,7,9,11};
Arrays.sort(a);
ArrayList<Integer> al=new ArrayList<Integer>();
for(int i=a[0];i<a[a.length-1];i++){
al.add(i);
}
ArrayList<Integer> aw=new ArrayList<Integer>();
for(int i=0;i<a.length;i++){
aw.add(a[i]);
}
al.removeAll(aw);
int[] b=new int[al.size()];
for(int i=0;i<al.size();i++){
b[i]=al.get(i);
}
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}
}
}
晨星 2009-06-07
  • 打赏
  • 举报
回复
先创建一个ArrayList,扫描原来的数据,一个一个往里加,最后再调用toArray转化成一个数据就是了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧