[JAVA] String 배열의 중복제거

[JAVA] String 배열의 중복제거

 

유사시 사용하기 위해 만든 String 배열의 중복제거 코드.

수행 결과는 다음과 같다.

 

before : 서울,부산,대구,전주,대전,제주,서울,대전,제주
after : 서울,부산,대구,전주,대전,제주

 

    public static void main(String[] args) {
        
        String[] strArray = {“서울”, “부산”, “대구”, “전주”, “대전”, “제주”, “서울”, “대전”, “제주”};
        String[] resultArray = removeDuplication(strArray);
        
        System.out.println(“before : “ + getString(strArray, “,”));
        System.out.println(“after : “ + getString(resultArray, “,”));
    }
    
    
    /**
     * 스트링 배열을 출력하기 쉽도록 한줄 스트링 형태로 변환한다.
     */

    public static String getString(String[] inputArray, String delimiter) {
        if (inputArray == null || inputArray.length == 0) {
            return “”;
        }
        
        StringBuffer buff = new StringBuffer();
        
        int count = inputArray.length;
        for (int i=0; i<count; i++) {
            if (buff.length() > 0) {
                buff.append(delimiter);
            }
            
            buff.append(inputArray[i]);
        }
        
        return buff.toString();
    }
    
    
    /**
     * 스트링 배열의 중복을 제거한다.
     */

    public static String[] removeDuplication(String[] inputArray) {
        if (inputArray == null || inputArray.length == 0) {
            return null;
        }
        
        int count = inputArray.length;
        String[] resultArray = new String[count];
        
        int currentIndex = 0;
        
        String singleItem = null;
        
        oLoop : for (int i=0; i<count; i++) {
            singleItem = inputArray[i];
            
            for (int k=0; k<resultArray.length; k++) {
                if (resultArray[k] == singleItem) {
                    continue oLoop;
                }
            }
            
            resultArray[currentIndex] = singleItem;
            currentIndex++;
        }
        
        if (currentIndex != count) {
            resultArray = resizeIntArray(resultArray, currentIndex);
        }
        
        return resultArray;
    }
    
    
    /**
     * 스트링 배열의 길이를 조정한다. (조정한 배열을 새로 얻는다)
     */

    public static String[] resizeIntArray(String[] inputArray, int newSize) {
        int lastIndex = -1;
        if (inputArray != null) {
            lastIndex = inputArray.length – 1;
        }
        
        String[] newArray = new String[newSize];
        
        for (int i=0; i<newSize; i++) {
            if (i > lastIndex) {
                newArray[i] = “”;
            } else {
                if (inputArray[i] == null) {
                    newArray[i] = “”;
                } else {
                    newArray[i] = inputArray[i];
                }
            }
        }
        
        return newArray;
    }