删除数组中重复数字 。。新手求教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把数组放到一个循环里,或者用list.contains()方法 可以利用HashSet不会包括相同对象的特点,将数组中的数字逐个加入到HashSet中去最后从HashSet还原的数组就是无重复数字的 将数组存到hashset里,读取就没有重复的了 将数组存到hashset里,读出来就没有重复的了 int a[] = new HashSet(int[args.length]); 这样就可以? HashSet hs = new HashSet();for (int i=0; i<a.length; i++) hs.add(a[i]); 建议使用HashSet吧,数组长度不可变,想要删除某个元素需要引入新的数组。我想的是先sort()一下,然后逐个和下一位比较,不想等送入新数组。不过顺序还是个问题 全都放在一个set里面不就好了吗. 我提供一种算法,楼主看看行不行。先对数组做一个排序,例如最简单的冒泡排序,行成一个有序的数组。再从第一个元素开始与它的后一个元素比较,如果相等,则将第一个元素去掉,让第二个元素跟第三个比较;如果不等,则直接让第二个元素跟第三个比较;依此类推,直到数组最后。这个数组剩下的自然就是不重复的了。还是调用集合框架已有的hashset或treeset过程更简单。 for(i=0;i<length-1;i++)for(j=i+1;j<length;j++){ if(array[i]=array[j]) { delete array[j]; j后元素前移; length--; }}差不多可以吧 int []persson=new int[20]; //向数组里附值 for (int i = 0; i < person.length; i++) { person[i] = i + 1; } int j; for(int k=0;k<10;k++){ //比如说你要删除下标为5的数 if(k==5){ for (j = k; j < person.length - 1; j++) { person[j] = person[j + 1];//每个向前移动一位 } person[j] = 0;// 把最后一个附值为0 break; } } HashSet hs = new HashSet();for (int i=0; i<a.length; i++) hs.add(a[i]);+1 Integer[] i = {1,4,23,5,32,1,5,43,65,23,65,42}; HashSet<Integer> set = new HashSet(); for(int j : i){ set.add(j); } i = set.toArray(new Integer[2]); int []a={1,2,3,4,3,2,1,2,9,1,3,4,6,4,3,5,6,7,3,34,5}; int []b=new int[a.length]; int size=0; for(int i=0;i<a.length;i++){ for(int j=i+1;j<a.length;j++){ if(a[i]!=a[j]){ if(j==a.length-1){ b[size++]=a[i]; } }else{ break; } } } b[size++]=a[a.length-1]; for(int i=0;i<b.length;i++){ System.out.println(b[i]); } 这个可用map处理。若只用数组,java的数组无remove方法,remove一数字就很啰嗦,开销也大。 把数组 挨个 放到 hashset里 再从hashset里取出来 就没重复的了 请问如何在swing中加入显示系统时间的部分 exception in thread "main" java.lang.NoClassDefFoundError:hello/class 在匿名类中this的使用问题, 都两天了还没搞明白, 求解 java并发编程实战中线程可见性问题 tomcat配置问题 代理服务器的问题,很急 乱码 请问硬件系统一种属intel架构, 还有一种是什么架构? 一个关于内存变量地址转换的问题 再一个字符串中如何表示一个回车符 用jxl将数据从数据库导出到excel中遇到write问题 怎么理解JAVA中构造函数不能被继承
最后从HashSet还原的数组就是无重复数字的
HashSet hs = new HashSet();
for (int i=0; i<a.length; i++)
hs.add(a[i]);
for(j=i+1;j<length;j++)
{
if(array[i]=array[j])
{
delete array[j];
j后元素前移;
length--;
}
}
差不多可以吧
//向数组里附值
for (int i = 0; i < person.length; i++) {
person[i] = i + 1;
}
int j;
for(int k=0;k<10;k++){
//比如说你要删除下标为5的数
if(k==5){
for (j = k; j < person.length - 1; j++) {
person[j] = person[j + 1];//每个向前移动一位
}
person[j] = 0;// 把最后一个附值为0 break;
}
}
for (int i=0; i<a.length; i++)
hs.add(a[i]);+1
Integer[] i = {1,4,23,5,32,1,5,43,65,23,65,42};
HashSet<Integer> set = new HashSet();
for(int j : i){
set.add(j);
}
i = set.toArray(new Integer[2]);
int []a={1,2,3,4,3,2,1,2,9,1,3,4,6,4,3,5,6,7,3,34,5};
int []b=new int[a.length];
int size=0;
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]!=a[j]){
if(j==a.length-1){
b[size++]=a[i];
}
}else{
break;
}
}
}
b[size++]=a[a.length-1];
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}