String search and reflection helper methods : Array Compare « Collections Data Structure « Java






String search and reflection helper methods

String search and reflection helper methods
       
/**
 * The utillib library.
 * More information is available at http://www.jinchess.com/.
 * Copyright (C) 2002, 2003 Alexander Maryanovsky.
 * All rights reserved.
 *
 * The utillib library is free software; you can redistribute
 * it and/or modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * The utillib library 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 Lesser
 * General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with utillib library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
 */


import java.util.Hashtable;
import java.util.Enumeration;
import java.util.NoSuchElementException;


/**
 * A collection of general utility methods.
 */

public class Utilities{
  
  
  
  /**
   * A 0-length Object array.
   */
   
  public static final Object [] EMPTY_ARRAY = new Object[0];



  /**
   * A 0-length long array.
   */
   
  public static final long [] EMPTY_LONG_ARRAY = new long[0];



  /**
   * A 0-length int array.
   */
   
  public static final int [] EMPTY_INT_ARRAY = new int[0];
  

  
  /**
   * A 0-length short array.
   */
   
  public static final short [] EMPTY_SHORT_ARRAY = new short[0];

  

  /**
   * A 0-length byte array.
   */
   
  public static final byte [] EMPTY_BYTE_ARRAY = new byte[0];
  
  
  
  /**
   * A 0-length char array.
   */
   
  public static final char [] EMPTY_CHAR_ARRAY = new char[0];



  /**
   * A 0-length double array.
   */
   
  public static final double [] EMPTY_DOUBLE_ARRAY = new double[0];
  


  /**
   * A 0-length float array.
   */
   
  public static final float [] EMPTY_FLOAT_ARRAY = new float[0];



  /**
   * A 0-length String array.
   */
   
  public static final String [] EMPTY_STRING_ARRAY = new String[0];
  
  
  
  /**
   * An empty enumeration.
   */
  
  public static final Enumeration EMPTY_ENUM = new Enumeration(){
    public boolean hasMoreElements(){return false;}
    public Object nextElement(){throw new NoSuchElementException();}
  };
  
  

  /**
   * Returns <code>true</code> if the two specified objects are the same.
   * Returns <code>false</code> otherwise. To be considered the same, the two
   * references must either both be null or invoking <code>equals</code> on one
   * of them with the other must return <code>true</code>.
   */

  public static boolean areEqual(Object obj1, Object obj2){
    return (obj1 == obj2) || (obj1 == null ? false : obj1.equals(obj2));
  }




  /**
   * Maps the specified key to the specified value in the specified
   * <code>Hashtable</code>. If the specified value is <code>null</code> any
   * existing mapping of the specified key is removed from the
   * <code>Hashtable</code>. The old value mapped to the specified key
   * is returned, or <code>null</code> if no value was mapped to the key.
   */

  public static Object put(Hashtable table, Object key, Object value){
    return value == null ? table.remove(key) : table.put(key, value);
  }



  /**
   * Returns <code>true</code> if the specified object is an element of the
   * specified array. The specified array may not be <code>null</code>. The
   * specified object may be <code>null</code>, in which case this method will
   * return <code>true</code> iff one of the indices in the array is empty 
   * (contains <code>null</code>).
   */

  public static boolean contains(Object [] array, Object item){
    return (indexOf(array, item) != -1);
  }



  /**
   * Returns the index of the first occurrance of specified object in the
   * specified array, or -1 if the specified object is not an element of the
   * specified array. The specified object may be <code>null</code> in which
   * case the returned index will be the index of the first <code>null</code>
   * in the array.
   */

  public static int indexOf(Object [] array, Object item){
    if (array == null)
      throw new IllegalArgumentException("The specified array may not be null");

    for (int i = 0; i < array.length; i++)
      if (areEqual(item, array[i]))
        return i;

    return -1;
  }




  /**
   * Returns the index of the first occurrance of specified integer in the
   * specified array, or -1 if the specified integer is not an element of the
   * specified array.
   */

  public static int indexOf(int [] arr, int val){
    if (arr == null)
      throw new IllegalArgumentException("The specified array may not be null");

    for (int i = 0; i < arr.length; i++)
      if (arr[i] == val)
        return i;

    return -1;
  }

  
  
  /**
   * Converts the specified array into a string by appending all its elements
   * separated by a semicolon.
   */

  public static String arrayToString(Object [] arr){
    StringBuffer buf = new StringBuffer();
    for (int i = 0; i < arr.length; i++){
      buf.append(arr[i]);
      buf.append("; ");
    }
    if (arr.length > 0)
      buf.setLength(buf.length() - 2); // get rid of the extra "; "

    return buf.toString();
  }




  /**
   * Converts the specified <code>Hashtable</code> into a string by putting
   * each key and value on a separate line (separated by '\n') and an arrow
   * (" -> ") between them.
   */

  public static String hashtableToString(Hashtable hashtable){
    StringBuffer buf = new StringBuffer();
    Enumeration keys = hashtable.keys();
    while (keys.hasMoreElements()){
      Object key = keys.nextElement();
      Object value = hashtable.get(key);
      buf.append(key.toString());
      buf.append(" -> ");
      buf.append(value.toString());
      buf.append("\n");
    }

    return buf.toString();
  }




  /**
   * Returns the maximum element in the specified integer array.
   */

  public static int max(int [] arr){
    if (arr == null)
      throw new IllegalArgumentException("The specified array may not be null");
    if (arr.length == 0)
      throw new IllegalArgumentException("The specified array must have at least one element");

    int n = arr[0];
    for (int i = 1; i < arr.length; i++)
      if (arr[i] > n)
        n = arr[i];

    return n;
  }



  /**
   * Returns a hash code for the specified double value.
   */

  public static int hashCode(double val){
    return hashCode(Double.doubleToLongBits(val));
  }



  /**
   * Returns a hash code for the specified long value.
   */

  public static int hashCode(long val){
    return (int)(val ^ (val >>> 32));
  }
  
  
  
  /**
   * Returns the name of the package of the specified class.
   */
  
  public static String getPackageName(Class c){
    return getPackageName(c.getName());
  }
  
  
  
  /**
   * Returns the name of the package of the class with the specified (full) name.
   */
  
  public static String getPackageName(String className){
    int lastDotIndex = className.lastIndexOf(".");
    return lastDotIndex == -1 ? "" : className.substring(0, lastDotIndex);
  }
  
  
  
  /**
   * Returns the short name (excluding the package name) of the specified class. 
   */
  
  public static String getClassName(Class c){
    return getClassName(c.getName());
  }
  
  
  
  /**
   * Returns the short name (excluding the package name) of the class with the
   * specified fully qualified name.
   */
  
  public static String getClassName(String className){
    int lastDotIndex = className.lastIndexOf(".");
    return lastDotIndex == -1 ? className : className.substring(lastDotIndex + 1);
  }
  
  
  
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Check if a text is present at the current position in a buffer for byte array
2.Check if a text is present at the current position in a buffer(char array and char array)
3.Check if a text is present at the current position in a buffer(char array and string)
4.Returns true if all the references in array1 are equal to all the references in array2 (two null references are considered equal for this test).
5.Returns true if any two items in the array are equal to one another. Any null values in the array are ignored.
6.Tests two float arrays for equality.
7.Does the source array equal the match array
8.Does this byte array begin with match array content?
9.Compares the initial elements of two arrays.
10.Checks whether two arrays are the same length, treating null arrays as length 0.
11.Checks whether two arrays are the same type taking into account multi-dimensional arrays.
12.Get the maximum value in a double array
13.Compare equality of two two-dimensional boolean array
14.Two double value arrays are almost equal
15.Find the index of the array nearest to the value.
16.Retrive the quartile value from an array
17.Reverses the contents of the array.