[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; }
|