Filtering Examples

Filtering Examples

Filtering 1 - Collapsing consecutive elements in a native array of Objects and an JGL container.

Filtering 2 - Selecting and rejecting elements from a container


Filtering1 Example Code

// Copyright(c) 1996 ObjectSpace, Inc. import jgl.*; /** * Collapsing consecutive elements in a native array of Objects and an JGL container. *

* @see jgl.Filtering * @version 1.1 * @author ObjectSpace, Inc. */ public class Filtering1 { public static void main( String[] args ) { String[] strings = { "gnu", "emu", "emu", "fox", "fox", "fox", "gnu" }; ObjectIterator begin = ObjectIterator.begin( strings ); ObjectIterator end = ObjectIterator.end( strings ); System.out.print( "strings = " ); Printing.println( begin, end ); ObjectIterator last = (ObjectIterator) Filtering.unique( begin, end ); System.out.print( "filtered strings = " ); Printing.println( begin, end ); int remaining = begin.distance( last ); System.out.println( "remaining = " + remaining ); System.out.print( "filtered array with bounds given = " ); end.retreat( remaining ); Printing.println( begin, end ); Array array = new Array(); array.add( "gnu" ); array.add( "emu" ); array.add( "emu" ); array.add( "fox" ); array.add( "fox" ); array.add( "fox" ); array.add( "gnu" ); System.out.println( "array = " + array ); Deque deque = new Deque(); Filtering.uniqueCopy( array, new InsertIterator( deque ) ); System.out.println( "deque = " + deque ); } }

Filtering1 Example Output

strings = ( gnu, emu, emu, fox, fox, fox, gnu ) filtered strings = ( gnu, emu, fox, gnu, fox, fox, gnu ) remaining = 4 filtered array with bounds given = ( gnu, emu, fox ) array = Array( gnu, emu, emu, fox, fox, fox, gnu ) deque = Deque( gnu, emu, fox, gnu )

Filtering2 Example Code

// Copyright(c) 1996 ObjectSpace, Inc. import jgl.*; /** * Selecting and rejecting elements from a container *

* @see jgl.Filtering * @version 1.1 * @author ObjectSpace, Inc. */ public class Filtering2 { public static void main( String[] args ) { Array array = new Array(); array.add( "cat" ); array.add( "monkey" ); array.add( "lion" ); array.add( "armadillo" ); array.add( "zebra" ); System.out.println( "array = " + array ); System.out.println( "Collecting strings > 5 chars == " + Filtering.select( array, new Filtering2UnaryPredicate() ) ); System.out.println( "Rejecting strings > 5 chars == " + Filtering.reject( array, new Filtering2UnaryPredicate() ) ); } } class Filtering2UnaryPredicate implements UnaryPredicate { // return true if the length of the toString() is // greater than 5. public boolean execute( Object object ) { return object.toString().length() > 5; } }

Filtering2 Example Output

array = Array( cat, monkey, lion, armadillo, zebra ) Collecting strings > 5 chars == Array( monkey, armadillo ) Rejecting strings > 5 chars == Array( cat, lion, zebra )