title: Efficient method to find the second largest even int in an array
body: <p>The assignment is to create a method that finds the second largest even int in an array of ints. I am restricted from using any methods from any libraries. </p>
  
  <p>Here is my code that works for all cases:</p>
  
  <pre><code>public static int getSecondLargestEven(int[] ary) {
  
  
  int i;
  
      aryLength = ary.length;
      int largestEven = -1;
      int secondLargestEven = -1;
  
      for (i = 0; i &lt; aryLength; i++) {
          if (ary[i] % 2 == 0) {
              if (ary[i] &gt; largestEven) {
                  if (largestEven != -1)
                      secondLargestEven = largestEven;
  
                  largestEven = ary[i];
              } else { 
                  if (ary[i] != largestEven) {
                      if (secondLargestEven == -1 || ary[i] &gt;= secondLargestEven) {
                          secondLargestEven = ary[i];
                      }
                  }
              }
          }
      }
  </code></pre>
  
  <p>Prior to calling the methodI require the array to have more than one even else no method call.
  So, when secondLargestEven == -1, I know there is a duplicate. </p>
  
  <p>Is there a more efficient (less use of operators, less loops used, less memory allocation) way to accomplish the objective? How can I improve the logic of my code? How can I improve my code overall?
  I don't like that I have to assign the magic number -1 to secondLargestEven and largestEven because they are technically named to hold EVENS. Would it be efficient to use a loop to assign a valid even integer in the array to both secondLargestEven and largestEven and THEN proceed to search? Thanks in advance.</p>