[JAVA] int 배열의 중복제거
유사시 사용하기 위해 만든 int 배열의 중복제거 코드.
수행 결과는 다음과 같다.
|
before : 1,2,3,4,5,1,2,3,4,5 after : 1,2,3,4,5
|
|
public static void main(String[] args) { int[] intArray = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}; int[] resultArray = removeDuplication(intArray); System.out.println(“before : “ + convertToString(intArray, “,”)); System.out.println(“after : “ + convertToString(resultArray, “,”)); } /** * 인트 배열을 출력하기 쉽도록 한줄 스트링 형태로 변환한다. */
public static String convertToString(int[] 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 int[] removeDuplication(int[] inputArray) { if (inputArray == null || inputArray.length == 0) { return null; } int count = inputArray.length; int[] resultArray = new int[count]; int currentIndex = 0;
int singleItem = 0; 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 int[] resizeIntArray(int[] inputArray, int newSize) { int lastIndex = -1; if (inputArray != null) { lastIndex = inputArray.length – 1; } int[] newArray = new int[newSize]; for (int i=0; i<newSize; i++) { if (i > lastIndex) { newArray[i] = 0; } else { newArray[i] = inputArray[i]; } } return newArray; }
|