Java整数配列は、出力の重複する値を巡回します.


public class Test {

	public static void main(String[] args) {
		
		Integer[] intArray = {1,1,2,2,2,3,4,4,4,6,7,7,8,8,8,8,8,9};
		
		Integer[] result = new Integer[intArray.length / 2];
		
		int tmp = intArray[0];
		int flag = 0;
		int resultFlag = 0;
		
		for(int i = 1 ; i < intArray.length ; i++){
			if(tmp == intArray[i]){
				flag++;
				if(i == intArray.length - 1){
					result[resultFlag] = tmp;
				}
			}else{
				if(flag > 0){
					result[resultFlag] = tmp;
					resultFlag++;
					flag = 0;
				}
				tmp = intArray[i];
			}
		}
		
		for(Integer i : result){
			if(i == null){
				break;
			}
			System.out.print(i+"	");
		}
		
	}
	
}

ここでintArrayは秩序配列(重複要素を含む)
resultは出力結果配列で、ここでその長さをintArrayの1/2と定義するのは、1つの配列の中で要素ごとに1回繰り返し、結果配列の長さは元の配列の長さの1/2であるため、これは最も極端な場合である.