本人写的一个关于整型数组去重的算法,望指正!
package Array;
import java.util.Arrays;
public class ArrayWipeRepeat {
public static void main(String[] args) {
int[] arr = {1,2,4,4,5,2,4,3,1,5};
int[] newArr = wipeRepeat(arr);
System.out.println(Arrays.toString(newArr));
}
public static int[] wipeRepeat(int[] arr){
int index = 1;
int[] newArr = new int[arr.length];
newArr[0] = arr[0];
for(int i=0;i<arr.length;i++){
for(int j=0;j<index;j++){
if(arr[i]!=newArr[j]){
if(j==index-1){
newArr[index++] = arr[i];
}
}else{
break;
}
}
}
arr = Arrays.copyOf(newArr, index);
return arr;
}}
package Array;
import java.util.Arrays;
public class ArrayWipeRepeat {
public static void main(String[] args) {
int[] arr = {1,2,4,4,5,2,4,3,1,5};
int[] newArr = wipeRepeat(arr);
System.out.println(Arrays.toString(newArr));
}
public static int[] wipeRepeat(int[] arr){
int index = 1;
int[] newArr = new int[arr.length];
newArr[0] = arr[0];
for(int i=0;i<arr.length;i++){
for(int j=0;j<index;j++){
if(arr[i]!=newArr[j]){
if(j==index-1){
newArr[index++] = arr[i];
}
}else{
break;
}
}
}
arr = Arrays.copyOf(newArr, index);
return arr;
}}
我觉得应该if (arr[i]==newArr[j])设个相同flag为true,然后break,让后判断相同flag为false则追加到newArr
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer[] arr= {1,2,4,4,5,2,4,3,1,5};
List<Integer> list=Arrays.asList(arr);
list=list.stream().distinct().collect(Collectors.toList());
for(int i=0;i<list.size();i++) {
System.out.print(list.get(i));
}
}
System.out.print(list.toString());