数组
{1,2,3,4,5,6,7,8,9,1,4,5,6,3}怎么去掉重复的值?不能用Set等! 问题点数:10、回复次数:18Top
1 楼smyl9989(☆☆☆☆☆)回复于 2006-12-04 11:01:00 得分 0
用循环一个一个对比 ... 这个效率不是太高啊Top
2 楼jianghuxiaoxiami(江湖小虾米)回复于 2006-12-04 11:08:14 得分 0
可以把元素取出来,作为key存入 Hashtable(value随便用一个),然后在读取Hashtable元素就行,
PS:利用Hashtable自动去除重复项Top
3 楼bill111(有我你别怕!)回复于 2006-12-04 11:48:11 得分 0
如果不用Set,List,Hashtable等,只能用用循环了。
Integer array[] = new Integer[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 5,6, 3 };
StringBuffer buf = new StringBuffer();
for (int i = 0; i < array.length; i++) {
String temp = new String(array[i].toString());
if (buf.indexOf(temp) >= 0) {
continue;
} else
buf.append(array[i]);
}
我这样做不知道可行,有最佳答案吗?Top
4 楼malligator(十步之内没有我的爱人)回复于 2006-12-04 14:10:02 得分 0
排序,
再把相邻的同样的Item删除Top
5 楼malligator(十步之内没有我的爱人)回复于 2006-12-04 14:11:34 得分 0
排序可以用插入排序,遇到重复(有相等的)的就不进行插入Top
6 楼longer84()回复于 2006-12-04 16:14:26 得分 0
bill111(有我你别怕!) 如果不是Integer类型 是int型呢?Top
7 楼bill111(有我你别怕!)回复于 2006-12-04 19:34:40 得分 0
这里的高手太多了,不知道我说的对不对!我记得Integer好象是封装类型,int是原始类型,Integer类在某对象中打包了原始类型为int的值。如果不用Integer用int的话,就用循环一个一个对比 。Top
8 楼jy02209334(失意中......)回复于 2006-12-04 20:14:11 得分 0
用楼上的方法,是int +""就可以了Top
9 楼longer84()回复于 2006-12-07 15:07:19 得分 0
在上面的代码里Integer类型怎么转成int类型呢?Top
10 楼88324877(寂寞呆头鱼)回复于 2006-12-07 15:13:00 得分 0
Integer pp=new Integer(pp);
int tt=pp.intValue() ;
楼上的,要学会查API文档Top
11 楼88324877(寂寞呆头鱼)回复于 2006-12-07 15:14:08 得分 0
int qq=55;
Integer pp=new Integer(qq);
int tt=pp.intValue() ;Top
12 楼jon_wd()回复于 2006-12-07 17:34:33 得分 0
import java.util.ArrayList;
public class test1 {
public static void main(String[] args) {
int s[] = new int[]{1,2,3,4,5,6,7,8,9,1,4,5,6,3};
Vector temp = new Vector();
ArrayList wd = new ArrayList();
for (int i = 0; i < s.length; i++){
while (wd.remove(String.valueOf(s[i]))){
}
wd.add(String.valueOf(s[i]));
}
for (int i = 0; i < wd.size(); i++){
System.out.println(wd.get(i));
}
}
}Top
13 楼jon_wd()回复于 2006-12-07 17:45:06 得分 10
import java.util.ArrayList;
public class test1 {
public static void main(String[] args) {
int s[] = new int[]{1,2,3,4,5,6,7,8,9,1,4,5,6,3};
ArrayList wd = new ArrayList();
for (int i = 0; i < s.length; i++){
if (wd.indexOf(String.valueOf(s[i])) == -1){
wd.add(String.valueOf(s[i]));
}
}
for (int i = 0; i < wd.size(); i++){
System.out.println(wd.get(i));
}
}
}Top
14 楼biaoflying(biaoflying)回复于 2006-12-07 18:22:57 得分 0
上面的可以直接用System.out.println(wd)取代最后一个循环。同时感谢你的方法。。Top
15 楼ljq164621155()回复于 2006-12-07 18:43:07 得分 0
有些地方不明白什么意思....是否能注释一下.....谢谢了Top
16 楼assed(我不怕活着)回复于 2006-12-07 20:54:15 得分 0
jon_wd()
回答的不错Top
17 楼gfcs19840222(相信时间)回复于 2006-12-07 23:34:06 得分 0
为啥么不用Set
设计出来的就是拿来用的。。。Top
18 楼gfcs19840222(相信时间)回复于 2006-12-07 23:42:47 得分 0
int[] A = {1,2,3,4,5,6,7,8,9,1,4,5,6,3};
Set<Integer> set = new HashSet<Integer>();
for(int i=0;i<A.length;i++){
set.add(new Integer(A[i]));
}
for(Integer inte:set){
System.out.println(inte.intValue());
}
用Set多简单啊。。。java设计这些类不就是为了解放程序员吗。。。。干嘛不准用Set....Top




