您的位置:首页 > 编程语言 > Java开发

Java中清除数组重复元素的一种算法

2018-03-06 09:39 330 查看
看了很多类似算法都要调用导入包来解决,本文适合初学者。
如有改进优化,敬请留言。
问题描述:    
目前有数组 int[] arr = {11,2, 4, 2 10, 11},试清除该数组的重复元素,返回的数组不准浪费长度。
代码如下:public class remove_object_from_array {
public static void main(String[] args) {

int[] arr= {11,2,4,2,10,11};//静态定义需要清除的数组
int[] arr2=new int[arr.length];//再定义一个长度与之相同的数组
int n=0;
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]==arr[j]&&i!=j) {
arr[j]=0;
}
}//通过二次遍历将重复元素的后面那个赋值为0(如0本来就在数组中则可以改变为其他赋值)
}
for (int x = 0; x < arr.length; x++) {
if(arr[x]!=0) {
arr2
=arr[x];//将原数组中的非0元素赋值给数组2中的元素;注意:未被赋值的数组2中元素值为0
n++;//自加实现数组2元素的依次赋值的同时也计算了非0元素的个数
}
}
int[]arr3=new int
;//定义数组3的长度为n
for (int i = 0; i < arr3.length; i++) {
arr3[i]=arr2[i];
}//依次赋值
for (int i = 0; i < arr3.length; i++) {
System.out.print(arr3[i]+" ");
}//遍历输出
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 算法