Mega Code Archive

 
Categories / Java / Class
 

This program demonstrates the use of static inner classes

/*    This program is a part of the companion code for Core Java 8th ed.    (http://horstmann.com/corejava)    This program is free software: you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation, either version 3 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program.  If not, see <http://www.gnu.org/licenses/>. */ /**  * This program demonstrates the use of static inner classes.  * @version 1.01 2004-02-27  * @author Cay Horstmann  */ public class StaticInnerClassTest {    public static void main(String[] args)    {       double[] d = new double[20];       for (int i = 0; i < d.length; i++)          d[i] = 100 * Math.random();       ArrayAlg.Pair p = ArrayAlg.minmax(d);       System.out.println("min = " + p.getFirst());       System.out.println("max = " + p.getSecond());    } } class ArrayAlg {    /**     * A pair of floating-point numbers     */    public static class Pair    {       /**        * Constructs a pair from two floating-point numbers        * @param f the first number        * @param s the second number        */       public Pair(double f, double s)       {          first = f;          second = s;       }       /**        * Returns the first number of the pair        * @return the first number        */       public double getFirst()       {          return first;       }       /**        * Returns the second number of the pair        * @return the second number        */       public double getSecond()       {          return second;       }       private double first;       private double second;    }    /**     * Computes both the minimum and the maximum of an array     * @param values an array of floating-point numbers     * @return a pair whose first element is the minimum and whose second element     * is the maximum     */    public static Pair minmax(double[] values)    {       double min = Double.MAX_VALUE;       double max = Double.MIN_VALUE;       for (double v : values)       {          if (min > v) min = v;          if (max < v) max = v;       }       return new Pair(min, max);    } }