// 배열을 HashSet으로 변환 (중복이 제거됨)
  HashSet<String> hashSet = new HashSet<>(Arrays.asList(arr));
  // HashSet을 배열로 변환 (중복(Dup)이 제거된 배열)
  arr = hashSet.toArray(new String[0]);
      // 배열을 HashSet으로 변환 (중복이 제거됨)
  LinkedHashSet<String> linkedhashSet = new LinkedHashSet<>(Arrays.asList(arr));
  // HashSet을 배열로 변환 (중복(Dup)이 제거된 배열)
  arr = linkedhashSet.toArray(new String[0]);
      // 배열 -> Stream -> distinct (중복제거) -> 배열
  arr = Arrays.stream(arr).distinct().toArray(String[]::new);
  // 배열 sorting
  //Arrays.sort(arr);
        
  // 임시 배열 선언
  String[] tempArr = new String[n]; 
  // 중복 제거 후 array의 길이
  int j = 0;  
  // 임시 배열 구성
  for (int i=0; i<n-1; i++){  
      if (arr[i] != arr[i+1]){  
          tempArr[j++] = arr[i];  
      }
  }
  tempArr[j++] = arr[n-1];       
  // 중복 제거된 배열 구성
  arr = new String[j];
  for (int i=0; i<j; i++){  
      arr[i] = tempArr[i];  
  }
      // 중복 제거 후 array의 길이
  int k = 0;  
  // 중복되는 데이터 "" 변환
  for (int i=0; i<n-1; i++){  
      for (int j=i+1;j<n;j++) {
          if (!arr[i].equals("") && arr[i].equals(arr[j])) {
              arr[j] = "";
              k++;
          }
      }
  }
  String[] resultArr = new String[n-k];
  int tmpindex = 0;
  //새로운 배열 생성
  for (String str : arr) {
      if (!"".equals(str)) {
          resultArr[tmpindex] = str;
          tmpindex++;
      }
  }