A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

目前有数组” int[] arr =  {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组不准浪费长度。

思路:1、排序。2、计数器找出重复值个数,计算得出目标数组长度。3、冒泡思想遍历数组,将不等于前一个元素的值记录入目标数组。目标数组第一个元素与原数组第一个元素相同。
import java.util.*;
class Demo9
{
        public static void main(String[] args)
        {
                int[] arr =  {11,2, 4, 2, 10, 11};
                System.out.println(Arrays.toString(clear(arr)));
        }

        public static int[] clear(int[] arr){       
                for(int i=0;i<arr.length-1;i++){
                        for(int j=0;j<arr.length-1-i;j++){
                                if(arr[j]>arr[j+1]){
                                        int temp=arr[j];
                                        arr[j]=arr[j+1];
                                        arr[j+1]=temp;
                                }
                        }
                }
                int index=0;
                for(int i=0;i<arr.length-1;i++){
                        if(arr[i]==arr[i+1]){
                                index++;
                        }
                }
                index=arr.length-index;
                int[] arr1=new int[index];
                for(int i=0,j=1;i<arr.length-1;i++){
                        if(arr[i]!=arr[i+1]){
                                arr1[j]=arr[i+1];
                                j++;
                        }
                }
                arr1[0]=arr[0];
                return arr1;
        }
}


请问还有其他思路吗?

5 个回复

倒序浏览
这是我以前做的
import java.util.*;

class Demo9{
        public static void main(String[] args){
                int[] arr={1,2,2,4,1,2,8,2,2,9};
                System.out.println(Arrays.toString(new Count().getArray(arr)));
        }
}

class Count{
        /*
        1.找出不重复的数组元素个数,
        2.创建数组用于保存不重复的数组元素
        3.找出不重复的数组元素(把数组的元素都与那个数组元素前面的元素逐一对比,如果是有相同则不是不重复数,数组对比时从下标1开始)
        */
        public int[] getArray(int[] arr){

                //找出不重复的数组元素个数
                int count=1;
        outer:for(int j=1;j<arr.length;j++){
                        for(int i=0;i<j;i++){
                                if(arr[j]==arr){
                                        continue outer;
                                }
                        }
                        count++;
                }
               
                int[] returnArr=new int[count];
                returnArr[0]=arr[0];        //第一数组元素是不会重复的

                int count1=1;
                //找出不重复的数组元素
                outer:for(int j=1;j<arr.length;j++){
                        for(int i=0;i<j;i++){
                                if(arr[j]==arr){
                                        continue outer;
                                }
                        }
                        returnArr[count1]=arr[j];
                        count1++;
                }
                return returnArr;
        }
}



回复 使用道具 举报
放到set集合里再弄回来
回复 使用道具 举报
放到List中,利用其中的contains方法判断,然后再转成数组
  1. import java.util.ArrayList;


  2. public class ContainDemo {
  3.         public static void sop(Object obj)
  4.         {
  5.                 System.out.print(obj);
  6.         }
  7.         public static void main(String[] args)
  8.         {
  9.                 int[] a={1,11,11,23,23,67,67};
  10.                 ArrayList<Integer> b=quchong(a);
  11.                 int[] bb=new int[a.length];
  12.                 for(int i=0;i<b.size();i++)
  13.                 {
  14.                         bb[i]=b.get(i);
  15.                         sop(bb[i]);
  16.                         sop(" ");
  17.                 }
  18.                
  19.         }
  20.         public static ArrayList<Integer> quchong(int[] a)
  21.         {
  22.                 ArrayList<Integer> al=new ArrayList<Integer>();
  23.                 for(int i=0;i<a.length;i++)
  24.                 {
  25.                         if(!al.contains(a[i]))
  26.                         {
  27.                                 al.add(a[i]);
  28.                         }
  29.                 }
  30.                 return al;       
  31.         }

  32. }
复制代码
回复 使用道具 举报
用 Set 集合吧。它的特点是 元素无重复,无序!
回复 使用道具 举报
可以在遍历中判断。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马