整型数组去重的算法

梦想飞的蜗牛 2019-03-23 02:32:23
本人写的一个关于整型数组去重的算法,望指正!
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;


}

}
...全文
309 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abckingaa 2019-03-25
  • 打赏
  • 举报
回复
放到set中,遍历完了,再拿出来。

也可以用散列法
RichardCod 2019-03-23
  • 打赏
  • 举报
回复
什么鬼,运行不出来
qq_39936465 2019-03-23
  • 打赏
  • 举报
回复
上面可以直接: System.out.print(list.toString());
qq_39936465 2019-03-23
  • 打赏
  • 举报
回复

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));
		}
	}

qybao 2019-03-23
  • 打赏
  • 举报
回复
if (arr[i]!=newArr[j])并且就j!=index-1就break,没问题吗? 我觉得应该if (arr[i]==newArr[j])设个相同flag为true,然后break,让后判断相同flag为false则追加到newArr

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧