Tutorial: Comparing Arrays


Authored by
Ronald S. Holland
Total Application Works
RonHolland@sumtotalz.com






To visit my site

[HOME] [Consulting] [Design] [Maintenance] [Project] [Testing] [Training] [Turnkey] [Java] [C++] [SQL] [HTML] [JavaScript ]



To contact us

© 2002 - 2016 All Rights Reserved Total Application Works


  • Tell a friend about this site (copy and paste the following link or send this page to a friend.)
  • <html>
    <title>Example of a link </title>
    <body>
    <table border>
    <a href="http://sumtotalz.com/TotalAppsWorks/Structures/Arrays/Array_Equal.html">An Introduction to Array Initialializer List and bubble sort </a>
    </table>
    </body>
    </html>
  1. Java Table of contents
  2. 2nd Java Cup
  3. Pie Chart I
  4. Pie/Bar Chart IB
  5. Pie/Bar Chart II
  6. Pie/Bar Chart III
  7. A Basic Calculator
  8. Linked Lists
  9. Linked List II
  10. Linked List III
  11. Linked List IV
  12. Hardware Store I
  13. Hardware Store II
  14. Hardware Store III
  15. Client/Server
  16. Client/Server II
  17. Client/Server III
  18. Client/Server IV
  19. Multithreaded Client/Server
  20. Multithreaded Client/Server II
  21. Multithreaded Client/Server III
  22. Basic Calculator II
  23. Basic Calculator III

Objectives

After you finish this tutorial, you will understand:

  • The array data structure.
  • The use of arrays to store of values.
  • How to declare an array, initialize an array and refer to individual elements in am array.
  • Some basic comparison techniques.

Introduction to Arrays

What is an array? We all understand the concept of an array. If I say that you have a bookcase that has ten shelves and you can place one book on a shelf. We all understand this instruction. Furthermore, if I say once you place the first book on a shelf, the other nine books must be of the same type (i.e., dictionary, mystery, computer science, etc.), we all understand this instruction. If we all understand the above instructions, then we understand the concept of an array. A bookcase contains books. An array contains data. An array of size ten contains 10 pieces of data. This is just like our bookcase that contained ten books with one book per shelf. An array is an important data structure in any programming language. An array is a fixed-length structure that stores multiple values of the same data type (i.e., int, float, long, char, double, etc.). You can group values of the same type within arrays. You cannot mix data types. For instance, you cannot store data of type int and float in the same array of primitive data types. Arrays are supported directly by the Java programming language. Primitive arrays (not to be confused with the Array class) should be considered as:

  • Data structures - consisting of related data items of the same type
  • Static - remain the size once they are created
  • An array - a group of contiguous memory locations that all have the same name and type
    • Most variables occupy a single location. The name of that variable is a reference to a memory location where that value of that variable is stored. Consider the following example.

      Variables
      Primitive
      Declaration
      Primitive
      Description
      Array
      Declaration
      Array
      Description
      int a = 10 ;
       
             |    |
             | 10 |
        a -> +----+
        ^
           |   
      address of where 
      'a' is located in 
      memory 
      
      int ar[] = new int[5] ;
      ar[0] = 10 ;
       
             |    |    |    |    |    |
             | 10 |    |    |    |    |
       ar -> +----+----+----+----+----+
      ^ | address of where 'ar' is located in memory
      Figure 1: Variable locations


      You will note that the value of '10' is stored at the location referenced by 'a'. In other words, the letter 'a' does not contain the value of '10'. Your house address does not contain your possessions; it is the house at that location that contains your possessions. Also note that ar[0] refers to the first location of the array ar.
  • The first element in an array is referenced by subscript 0.
  • The position number in the square brackets is called a subscript
  • A subscript must be an integer or an integer expression
  • When an expression is used as a subscript, the expression is evaluated first
  • If the array name is ar, the length may be determined by
     
        int len = ar.length ;
     
  • Every array in Java knows its own length
  • The brackets that enclose the subscript are an operator in Java
    • An array reference may be reassigned to an array of a different size

Declaring and allocating arrays

    Arrays occupy space in memory. The programmer specifies the data type of the elements and uses the new operator to dynamically allocate the space required to hold the elements specified. Arrays are considered objects and all objects must be allocated with the new operator. For example, to allocate a ten_element array named ar

     
        int ar[] = new int[10];
    
    ---------------- or case 2 ---------------------
    
        int ar[];
        ar = new int[10];
    
    
    ---------------- or case 3 ---------------------
    
    int ar[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    
    The above list encased within the brackets 
    is called an initializer list. It initializes the
    array with the initial values and the size of the
    array equals the number of values in the list.
    Figure 2: Declarations and Allocations


    When arrays are allocated, the elements are automatically initialized to

    • Zero for the numeric primitive types variables.
    • false for boolean, or
    • null for references (any nonprimitive type).
    For examples of declarations, consider the following:
     
    
    1-  String b[] = new String[ 100 ], 
           s[] = new String [ 27 ];
    
    2-  double[] array1, array2;
    
    3-  double[] array1 = new double[ 10 ], 
                   array2 = new double[ 20 ];
     
  • Every element of a String is a reference to a String that has the value null by default

ArrayEqual template

In the following table, we will show aS ArrayEqual code template.

 
public class ArrayEqual {

/** *************************************************
 *  The ArrayEqual() constructor compares two arrays 
 *  1- compares arrays abc and xyz and determines 
 *     whether the two arrays are equivalent.
 *                     
 *****************************************************/

   public ArrayEqual() {


   }

   public static void main(String[] args) {

      ArrayEqual ae = new ArrayEqual() ;
   }
} /****************** End of ArrayEqual class ************************/  
 
Figure 3: ArrayEqual template

ArrayEqual code example

In the following figure, you will find the code for this example.

  
/** **********************************************
 *  ArrayEqual.java - compares two arrays to 
 *                    determine if they are 
 *                    equivalent.
 *  
 * Copyright (c) 2002-2009 Advanced Applications Total Applications Works.
 * (AATAW)  all Rights Reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Total Application works nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 *
 *
 ************************************************/

import java.lang.* ;
import java.lang.reflect.Array ;
import java.util.Arrays;
import javax.swing.* ;

/** **********************************************
 *  ArrayEqual.java - compares two arrays to 
 *                    determine if they are 
 *                    equivalent.
 *
 ************************************************/

public class ArrayEqual {

   private String[] myAr1 = { "a", "r", "q", "n" };
   private String[] myAr2 = { "A", "R", "Q", "N" };
   private String[] myAr = { "sumtotalz", "Dot", "Com" };
   private String output = "" ; 

/** *************************************************
 *  The ArrayEqual() constructor compares two arrays 
 *  1- compares arrays myAr1 and myAr2 
 *  2- compares arrays myAr1 and myAr 
 *                     
 *****************************************************/

   public ArrayEqual() {

      output += "Are arrays myAr1 and myAr2 equivalent? " + 
                   Arrays.equals(myAr1, myAr2)   + "\n\n"  ;

      output += "Are arrays myAr1 and myAr equivalent? " + 
                   Arrays.equals(myAr1, myAr)  + "\n\n"   ;
      output += "The contents of array myAr1 are " + myAr1[0] + 
                   "  " + myAr1[1] + "  " + myAr1[2] + "  " + 
                         myAr1[3]  + "\n\n"  ;

      output += "The contents of array myAr2 are " + myAr2[0] + "  " 
                   + myAr2[1] + "  " + myAr2[2] + "  " 
                      + myAr2[3] + "\n\n"   ;

      output += "The contents of array myAr are " + myAr[0] 
                   + " " + myAr[1] + " " + myAr[2] + "\n\n"   ;         

      JOptionPane.showMessageDialog( null, 
             output,
               "Are Arrays Equal?",
                  JOptionPane.INFORMATION_MESSAGE );
   }

   public static void main(String[] args) {

      ArrayEqual ae = new ArrayEqual() ;
   }
}/****************** End of ArrayEqual class ************************/
 
Figure 4: ArrayEqual Example Code


Methods used in the ArrayEqual example

In the following table, you will find a brief description of some of the methods used in the example.

Methods Descriptions
Array class Methods
equals(Object obj) Indicates whether some other object is "equal/equivalent to" this one. The equals method implements an equivalence relation on non-null object references:
JOptionPane Methods
showMessageDialog(null, "alert", "alert", JOptionPane.INFORMATION_MESSAGE) Show an error/message dialog that displays the message, 'alert':
Figure 5: ArrayEqual API Method Description


ArrayEqual .bat file

The following example is the Bat file used to compile and run the ArrayEqual program.

 
javac  ArrayEqual.java


java   ArrayEqual 


 
Figure 6: Bat file used to compile and run ArrayEqual example.

To run this example

To run this example,

  1. Cut and paste the code in Figure 4 and place it in a file called ArrayEqual.java.
  2. Cut and paste the code in Figure 5 and place it in a file called ArrayEqual.bat.
  3. Double click on the ArrayEqual.bat file and you will see the following.



    Figure 7: Image of ArrayEqual example.



The Array class

    provides static methods to dynamically create, access and manipulate Java array objects. This is not a primitive array structure (e.g., int, float, long double, etc.)






[HOME] [Consulting] [Design] [Maintenance] [Project] [Testing] [Training] [Turnkey] [Java] [C++] [SQL] [HTML] [JavaScript ]

© 2002 - 2009 All Rights Reserved Total Application Works