题目:目前有数组 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)); }}