// 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