/**
 * @author WanJl
 * @version 1.0
 * @title Exercises03
 * @description 定义一个整数数组 `{5, 2, 8, 2, 5, 9, 1, 8, 3}`，去除数组中重复的元素，只保留第一次出现的元素，输出去重后的新数组。
 * @create 2026/7/16
 */
public class Exercises03 {
    public static void main(String[] args) {
        /*
            先统计不重复元素的个数
         */
        int[] arr={5, 2, 8, 2, 5, 9, 1, 8, 3};
        int count=0;    //个数
        for (int i = 0; i < arr.length; i++) {
            boolean b=false;    //设置false，表示 先认为当前的数组元素是没有重复的
            for (int j = 0; j < i; j++) {    //找 arr[i]元素，在arr数组中，有没有重复的元素。
                if (arr[i]==arr[j]){    //只要找到一个重复的
                    b=true; //就把b设置为 true
                    break;  //跳出内层循环
                }
            }
            if (b==false){  //那就说明这个元素是没有重复的，就计数
                count++;
            }
        }
        //创建的新的数组长度就是 count
        int[] newArr=new int[count];    //动态初始化
        int index=0;    //作为新数组的索引值
        for (int i = 0; i < arr.length; i++) {
            boolean b=false;    //设置false，表示 先认为当前的数组元素是没有重复的
            //检查arr[i]在它之前是否有出现过
            for (int j = 0; j < i; j++) {    //找 arr[i]元素，在arr数组中，有没有重复的元素。
                if (arr[i]==arr[j]){    //只要找到一个重复的
                    b=true; //就把b设置为 true
                    break;  //跳出内层循环
                }
            }
            //判断 如果我们设置的标记还是false，说明
            if (b==false){  //那就说明这个元素是没有重复的，就放进新的数组
                newArr[index]=arr[i];
                index++;
            }
        }
        for (int i = 0; i < newArr.length; i++) {
            System.out.print(newArr[i]+" ");
        }
    }
}
