// A simple array example.
//
// Data Structures and Algorithms
// CS 305 & 503, Spring 2010

import java.util.Arrays;

class collapse {

  private static int []
  collapse(int a[], int x) {

    // Suppress runs of x in a.
    // collapse([0,0,1,1,0,0,0], 0) = [0,1,1,0]

    final int n = a.length;
    int cpy [] = new int [n];
    int next = 0, i = 0;

    while (i < n) {
      cpy[next++] = a[i];
      if (a[i++] == x)
	while ((i < n) && (a[i] == x))
	  i++;
      }

    return Arrays.copyOf(cpy, next);
    }

  public static void 
  main(String args[]) {
    final int in [] = new int [] {0, 0, 1, 1, 0, 0, 0};
    assert collapse(in, 0).equals(new int [] {0, 1, 1, 0});
    assert collapse(in, 1).equals(new int [] {0, 0, 1, 0, 0, 0});
    }
  }

syntax highlighted by Code2HTML, v. 0.9.1