{"id":68,"date":"2007-04-20T08:29:00","date_gmt":"2007-04-20T08:29:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=68"},"modified":"2007-04-20T08:29:00","modified_gmt":"2007-04-20T08:29:00","slug":"range-in-java","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2007\/04\/range-in-java\/","title":{"rendered":"range() in Java"},"content":{"rendered":"<p>A range is a very handy feature of programing languages like Python.<\/p>\n<ul>\n<li>range( 10 ) -&gt; 0 1 2 3 4 5 6 7 8 9<\/li>\n<li>range( 5, 10 ) -&gt; 5 6 7 8 9<\/li>\n<li>range( 0, 10, 3 ) -&gt; 0 3 6 9<\/li>\n<li>range( &#8218;0&#8216;, &#8218;9&#8216; ) -&gt; 012345678<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<pre class=\"prettyprint\">package com.tutego;<br \/><br \/>import static com.tutego.Range.range;<br \/><br \/>public class RangeDemo<br \/>{<br \/>  public static void main( String[] args )<br \/>  {<br \/>    for ( int i : range( 10 ) )<br \/>      System.out.print( i + \" \" );<br \/><br \/>    System.out.println();<br \/><br \/>    for ( int i : range( 5, 10 ) )<br \/>      System.out.print( i + \" \" );<br \/><br \/>    System.out.println();<br \/><br \/>    for ( int i : range( 0, 10, 3 ) )<br \/>      System.out.print( i + \" \" );<br \/><br \/>    System.out.println();<br \/><br \/>    for ( int i : range( '0', '9' ) )<br \/>      System.out.print( (char) i  );<br \/><br \/>    System.out.println();<br \/><br \/>    String[] a = { \"Mary\", \"had\", \"a\", \"little\", \"lamb\" };<br \/>    for ( int i : range(a.length ) )<br \/>      System.out.printf( \"%d %s%n\", i, a[i] );<br \/>  }<br \/>}<br \/><\/pre>\n<p>And the main class <code>Range<\/code> <\/p>\n<pre class=\"prettyprint\">\/*<br \/> * This project is made available under the terms of the BSD license, more information can be found at<br \/> * http:\/\/www.opensource.org\/licenses\/bsd-license.html<br \/> *<br \/> * Copyright (c) 2007. Christian Ullenboom (http:\/\/www.tutego.com\/) and contributors. All rights reserved.<br \/> *\/<br \/>package com.tutego;<br \/><br \/>import java.util.Iterator;<br \/><br \/>\/**<br \/> * Class that generates immutable sequences (ranges) as Iterable&lt;Integer&gt;<br \/> * objects. A range represents a start (0 if not given), an stop (mandatory) and<br \/> * an optional step (1 by default). The start value is included in the range,<br \/> * the stop value is exclusive. Every range is handled by an Iterable&lt;Integer&gt;<br \/> * which can by used in an extended for loop.<br \/> * <br \/> * &lt;pre&gt;<br \/> * for ( int i : range( 0, 10, 3 ) )<br \/> *   System.out.print( i + \" \" ); \/\/ 0 3 6 9<br \/> * &lt;\/pre&gt;<br \/> * <br \/> * @author Christian Ullenboom (tutego)<br \/> * @version 1.0<br \/> *\/<br \/>public class Range<br \/>{<br \/>  public static Iterable&lt;Integer&gt; range( final int start, final int stop, final int step )<br \/>  {<br \/>    if ( step &lt;= 0 )<br \/>      throw new IllegalArgumentException( \"step &gt; 0 isrequired!\" );<br \/><br \/>    return new Iterable&lt;Integer&gt;()<br \/>    {<br \/>      public Iterator&lt;Integer&gt; iterator()<br \/>      {<br \/>        return new Iterator&lt;Integer&gt;()<br \/>        {<br \/>          private int counter = start;<br \/><br \/>          public boolean hasNext()<br \/>          {<br \/>            return counter &lt; stop;<br \/>          }<br \/><br \/>          public Integer next()<br \/>          {<br \/>            try<br \/>            {<br \/>              return counter;<br \/>            }<br \/>            finally { counter += step; }<br \/>          }<br \/><br \/>          public void remove() { }<br \/>        };<br \/>      }<br \/>    };<br \/>  }<br \/><br \/>  public static Iterable&lt;Integer> range( final int start, final int stop )<br \/>  {<br \/>    return range( start, stop, 1 );<br \/>  }<br \/><br \/>  public static Iterable&lt;Integer> range( final int stop )<br \/>  {<br \/>    return range( 0, stop, 1 );<br \/>  }<br \/>}<br \/><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A range is a very handy feature of programing languages like Python. range( 10 ) -&gt; 0 1 2 3 4 5 6 7 8 9 range( 5, 10 ) -&gt; 5 6 7 8 9 range( 0, 10, 3 ) -&gt; 0 3 6 9 range( &#8218;0&#8216;, &#8218;9&#8216; ) -&gt; 012345678 &nbsp; package com.tutego;import [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/68","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=68"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}