题目:目前有数组 int[] arr = {11, 2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组存储了那些非重复的数组而且不准浪费长度。
即
必须得到的结果是 {11, 2, 4, 10}
/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年6月28日16:09:17
* Desc:题目:目前有数组 int[] arr = {11, 2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组存储了那些非重复的数组而且不准浪费长度。
即必须得到的结果是 {11, 2, 4, 10}
分析:
1.确定新数组的长度。原数组的长度减去重复元素个数。
*/
import java.util.*;
class Demo78
{
public static int[] getNonRepetitiveElements(int[] arr){
int count = 0;
//先计算出重复元素的个数
for(int i=0; i<arr.length; i++){
for(int j=i+1; j<arr.length; j++){
if(arr[i] == arr[j]){
count ++;
break;
}
}
}
//确定新的数组的长度
int newLength = arr.length - count;
System.out.println("新数组长度:" + newLength);
int index = 0;//定义一个变量记录新数组使用的索引值
//创建一个新的数组
int[] newArr = new int[newLength];
//往新数组里面添加旧数组的元素,存入新数组之前要先判断该元素是否存在新数组中,如果存在了,那么该元素就不要了。
for(int i=0; i<arr.length; i++){
int temp = arr[i];//取出旧数组的元素
boolean flag = false;//定义一个变量用于记住当前元素是否为重复元素,默认不是重复元素
//与新元素数组元素挨个比较其是否存在
for(int j=0; j<newLength; j++){
if(newArr[j] == temp){//元素已经存在新数组中
flag = true;
break;
}
}
//不是重复元素,就把该元素存储到新数组中
if(flag == false){
newArr[index++] = temp;
}
}
return newArr;
}
public static void main(String[] args)
{
int[] arr = {11, 2, 4, 2, 10, 11};
System.out.println("清除元素前的旧数组" + Arrays.toString(arr));
int[] newArr = getNonRepetitiveElements(arr);
System.out.println("清除元素后的新数组" + Arrays.toString(newArr));
}
}