用了兩種方法,第一種用了list的contains方法,第二種用了Collections.sort方法,然後新建一個同等大小的數組,按順序加入元素,只有後面的元素大於數組的元素才添加。因爲已經排序了,可以保證此步驟不會有遺漏,提高效率。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class RemoveRepeatedInteger {
public static Integer[] filterDataWithList(Integer[] dataArr) {
List<Integer> list = new ArrayList();
int length = dataArr.length;
Integer[] intArr = new Integer[length];
for(int i=0, j=0; i<length; i++){
if(!list.contains(dataArr[i])){
list.add(dataArr[i]);
intArr[j++] = dataArr[i];
}
}
return intArr;
}
public static Integer[] filterDataWithSorting(Integer[] dataArr) {
List<Integer> list = Arrays.asList(dataArr);
Collections.sort(list);
System.out.println("sort arr:"+list);
int length = dataArr.length;
Integer[] intArr = new Integer[length];
for(int i=0, j=0; i<length; i++){
Integer num = list.get(i);
if(i==0){
intArr[j] = num;
}else{
if(num>intArr[j]){
intArr[++j] = num;
}
}
}
return intArr;
}
public static void main(String[] args) {
Integer[] dataArr = new Integer[]{1, 3, 5, 7, 7, 8, 8, 9, 10, 10};
System.out.println("before filter: "+Arrays.asList(dataArr));
Integer[] objects;
objects=filterDataWithSorting(dataArr);
// objects = filterDataWithList(dataArr);
System.out.println("after filter: "+Arrays.asList(objects));
}
}