package com.lovecoding.day16.ex02;

import org.junit.Test;

import java.util.Arrays;

public class Test01 {
    //有一个长度为10的整数数组，例如，。去除数组中重复的内容，只保留唯一的元素。效果如图所示
    //{9,10,6,6,1,9,3,5,6,4}
    //{10,6,6,1,9,3,5,6,4} 4
    //{10,6,6,1,9,3,5,6,4} 4
    //{10,6,1,9,3,5,6,4} 4 4
    //{10,6,1,9,3,5,6,4},4 4
    //{10,1,9,3,5,6,4},4,4 4
    //{10,1,9,3,5,6,4},4,4 4
    //{10,1,9,3,5,6,4},4,4 4

    //- 定义一个变量count，初始化为数组的长度
    //- 遍历每一个元素，如果该元素与前面的某个元素相等，那么通过移动数组，把该元素覆盖掉，并修改count--。
    //- 最后创建一个新数组，长度为count，并从原数组把前count个元素复制过来
    @Test
    public void test01(){
        int[] arr = {9,10,6,6,1,9,3,5,6,4};
        int count = arr.length;
        //每一个元素
        for (int i = 0; i < count - 1; i++) {
            for (int j = i+1; j < count - 1  ; j++) {
                if (arr[i] == arr[j]){
                    System.arraycopy(arr,i+1,arr,i,count-i-1);
                    //System.out.println(Arrays.toString(arr));
                    count--;
                    i--;
                    break;
                }
            }
        }
        int[] arr1 = new int[count];
        System.arraycopy(arr,0,arr1,0,count);
        System.out.println(Arrays.toString(arr1));
    }

    //{9,10,6,6,1,9,3,5,6,4}

    @Test
    public void test02(){
        int[] arr = {9,10,6,6,1,9,3,5,6,4};
        int count = arr.length;
        //每一个元素
        for (int i = 0; i < count - 1; i++) {
            for (int j = 0; j < i  ; j++) {
                if (arr[i] == arr[j]){
                    System.arraycopy(arr,i+1,arr,i,count-i-1);
                    //System.out.println(Arrays.toString(arr));
                    count--;
                    i--;
                    break;
                }
            }
        }
        int[] arr1 = new int[count];
        System.arraycopy(arr,0,arr1,0,count);
        System.out.println(Arrays.toString(arr1));
    }
}
