title: How to iterate over a JSONArray in java 8
body: <p>I have the following code which is using a <code>for loop</code> to iterate over the elements in a <code>JSONArray</code>. </p>
  
  <pre><code>import org.apache.log4j.Logger;
  import org.json.JSONArray;
  import org.json.JSONObject;
  
  import java.util.stream.IntStream;
      public class Pmt {
      private String[] patchInformation_svnRevisionpublic;
      private final Logger logger = Logger.getLogger(Pmt.class.getName());
  
          private static final String COMMITS_IN_PATCH_IDENTIFIER = "patchInformation_svnRevisionpublic";  //key used to identify the commits in a patch from JSON response received from PMT
          private static final String KEY_STRING = "name";
          private static final String VALUE_STRING = "value";
  
           public String[] getPublicGitCommitHashes(JSONArray jsonArray) {
  
              for (int i = 0; i &lt; jsonArray.length(); i++) {
                  JSONObject jsonObject = (JSONObject) jsonArray.get(i);
                  String tempName = (String) jsonObject.get(KEY_STRING);
                  if (tempName.equals(COMMITS_IN_PATCH_IDENTIFIER)) {
                      JSONArray tempCommitsJSONArray = (JSONArray) jsonObject.get(VALUE_STRING);
                      //initializing the patchInformation_svnRevisionpublic array
                      patchInformation_svnRevisionpublic = new String[tempCommitsJSONArray.length()];
                      // for ommiting the white spaces at the begingin and end of the commits
                      IntStream.range(0, tempCommitsJSONArray.length()).forEach(j -&gt; patchInformation_svnRevisionpublic[j] = ((String) tempCommitsJSONArray.get(j)).trim());
  
                      logger.info(" The commits hashes obtained from WSO2 PMT are successfully saved to an array");
  
                      System.out.println("The commit Ids are");
                      //            for printing all the commits ID associated with a patch
                      IntStream.range(0, patchInformation_svnRevisionpublic.length).mapToObj(i1 -&gt; patchInformation_svnRevisionpublic[i1]).forEach(System.out::println);
                      System.out.println();
                      break;
                  }
              }
              //to prevent from internaal representation by returning referecnce to mutable object
              String clonedPatchInformation_svnRevisionpublic[] = patchInformation_svnRevisionpublic.clone();
              return clonedPatchInformation_svnRevisionpublic;
          }
      }
  </code></pre>
  
  <p>How do I use the new features in <code>Java 8</code> like <code>streams API</code> or <code>forEach</code> to perform the same task. Thanks in advance</p>