Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Range() In Java

DZone's Guide to

Range() In Java

·
Free Resource
A range is a very handy feature of programing languages like Python.

    * range( 10 ) -> 0 1 2 3 4 5 6 7 8 9
    * range( 5, 10 ) -> 5 6 7 8 9
    * range( 0, 10, 3 ) -> 0 3 6 9
    * range( '0', '9' ) -> 012345678

With an extended for loop it is possible to use such a feature too:


/*
 * This project is made available under the terms of the BSD license, more information can be found at
 * http://www.opensource.org/licenses/bsd-license.html
 *
 * Copyright (c) 2007. Christian Ullenboom (http://www.tutego.com/) and contributors. All rights reserved.
 */
package com.tutego;

import java.util.Iterator;

/**
 * Class that generates immutable sequences (ranges) as Iterable
  
   
 * objects. A range represents a start (0 if not given), an stop (mandatory) and
 * an optional step (1 by default). The start value is included in the range,
 * the stop value is exclusive. Every range is handled by an Iterable
   
    
 * which can by used in an extended for loop.
 * 
 * 
    
 * for ( int i : range( 0, 10, 3 ) )
 *   System.out.print( i + " " ); // 0 3 6 9
 * 
* * @author Christian Ullenboom (tutego) * @version 1.0 */ public class Range { public static Iterable range( final int start, final int stop, final int step ) { if ( step <= 0 ) throw new IllegalArgumentException( "step > 0 isrequired!" ); return new Iterable () { public Iterator iterator() { return new Iterator () { private int counter = start; public boolean hasNext() { return counter < stop; } public Integer next() { try { return counter; } finally { counter += step; } } public void remove() { } }; } }; } public static Iterable range( final int start, final int stop ) { return range( start, stop, 1 ); } public static Iterable range( final int stop ) { return range( 0, stop, 1 ); } }
This is an example: package com.tutego; import static com.tutego.Range.range; public class RangeDemo { public static void main( String[] args ) { for ( int i : range( 10 ) ) System.out.print( i + " " ); System.out.println(); for ( int i : range( 5, 10 ) ) System.out.print( i + " " ); System.out.println(); for ( int i : range( 0, 10, 3 ) ) System.out.print( i + " " ); System.out.println(); for ( int i : range( '0', '9' ) ) System.out.print( (char) i ); System.out.println(); String[] a = { "Mary", "had", "a", "little", "lamb" }; for ( int i : range(a.length ) ) System.out.printf( "%d %s%n", i, a[i] ); } }
Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}