第一种做法,遍历数组,用isExist标记是否出现过,未出现则添加至新的数组
public static int[] distinct(int[] arr){
int length=1;
bollean isExist=false;
for(int i=1;i<arr.length;i++){
for((int j=0;j<length;j++){
if(arr[i]==arr[j]){
isExist=true;
}
}
if(!isExist){
arr[length]=arr[i];
length++;
}
isExist=false;
}
int[] newArr=new int[length];
System.arraycopy(arr,0,newArr,0,length);
return newArr;
}
第二种做法,利用set集合框架,因为set集合中元素不允许重复
public static void main(String[] args){
int[] arr={0,4,2,4,6,1,2,4,7,8};
TreeSet ts=new TreeSet();
for(int x=0;x<arr.length;x++){
if(arr[x]==0)
continue;
ts.add(arr[x]);
}
System.out.println(ts);
}
第三种做法,利用hashtable,利用其键的唯一性
public Object[] filter(Object arr[])
{
Hashtable<Object, Object> hashtable = new Hashtable<Object, Object>();
for (int i = 0; i < arr.length; ++i)
{
hashtable.put(arr[i], arr[i]);
}
Object results[] = null;
results = hashtable.values().toArray();
return results;
}
}
网友评论