Looking up values stored inside an ArrayList object

  • The ArrayList class has many methods to look up information stored in an ArrayList object

  • We will discuss the following instance methods for searching in an ArrayList:

      get(int index):
          Returns the element e at the position index in this array list
    
      indexOf(E e):
          Returns the index of the first occurrence of element e
          in this array list
    
          Returns -1 when not found
    
      lastIndexOf(E e):
          Returns the index of the last  occurrence of element e
          in this array list
    
          Returns -1 when not found
    
      contains(E e):
          Returns true if e is in this array list 
          Returns false otherwise 

  get( index )  

  • Syntax of get( index ):

            myList.get(index); 

  • get( index ) returns the element stored at the index "index" in the ArrayList object:

  get( index )  

  • Syntax of get( index ):

            myList.get(index); 

  • Example:   find the element stored at index 1 in an ArrayList<String> object:

        public static void main(String[] args)
        {
            ArrayList<String> myList = new ArrayList<>();
            
            myList.add("john");  // Index 0
    	myList.add("peter"); // Index 1
            myList.add("mary");  // Index 2
    	myList.add("peter"); // Index 3
    
            System.out.println( myList.get(1) );  // --> peter
    	System.out.println( myList.get(2) );  // --> mary
        } 

DEMO: demo/11-arrayList/03-find/Get.java

  indexOf( element )  

  • Syntax of indexOf( element ):

            myList.indexOf(element); 

  • indexOf( element ) returns the index of the first ocurrence of the element element stored in the ArrayList object:

  indexOf( element )  

  • Syntax of indexOf( element ):

            myList.indexOf(element); 

  • Example:   find the index of the first occurence of "peter"

        public static void main(String[] args)
        {
            ArrayList<String> myList = new ArrayList<>();
            
            myList.add("john"); 
    	myList.add("peter"); // Index 1
            myList.add("mary"); 
    	myList.add("peter");
    
            System.out.println( myList.indexOf("peter") ); // 1
            System.out.println( myList.indexOf("xxxxx") ); // -1
        } 

DEMO: demo/11-arrayList/03-find/IndexOf.java

  A phonebook application using ArrayList  

  • A phone book is a relationship between a set of names and a set of phone numbers

    Example:

      name        phone
      ------------------------
      john        123-4567
      anne	      444-4444
      mary	      789-1234
      peter	      777-7777
    

  • We can represent a phone book with  2  ArrayList objects

    Example:

     ArrayList<String> name  = new ArrayList<>(); // Stores the names
     ArrayList<String> phone = new ArrayList<>(); // Stores the phone number
    

  A phonebook application using ArrayList  

  • We can use the add( ) method to populate the names and phones:

     public static void main(String[] args)
     {
         ArrayList<String> name  = new ArrayList<>();
         ArrayList<String> phone = new ArrayList<>();
    
         name.add("john");  phone.add("123-4567");
         name.add("anne");  phone.add("444-4444");
         name.add("mary");  phone.add("789-1234");
         name.add("peter"); phone.add("777-7777");
    
        
    
        
       
    
        
               
        
           
         
            
     } 
    

 

  A phonebook application using ArrayList  

  • We first read in the name from the keyboard:

     public static void main(String[] args)
     {
         ArrayList<String> name  = new ArrayList<>();
         ArrayList<String> phone = new ArrayList<>();
    
         name.add("john");  phone.add("123-4567");
         name.add("anne");  phone.add("444-4444");
         name.add("mary");  phone.add("789-1234");
         name.add("peter"); phone.add("777-7777");
    
         Scanner in = new Scanner(System.in);
    
         System.out.print("\nEnter name: "); 
         String s = in.nextLine();
    
    
               
     
    
     
     
     } 
    

 

  A phonebook application using ArrayList  

  • Then lookup the input (s) in the names array list:

     public static void main(String[] args)
     {
         ArrayList<String> name  = new ArrayList<>();
         ArrayList<String> phone = new ArrayList<>();
    
         name.add("john");  phone.add("123-4567");
         name.add("anne");  phone.add("444-4444");
         name.add("mary");  phone.add("789-1234");
         name.add("peter"); phone.add("777-7777");
    
         Scanner in = new Scanner(System.in);
    
         System.out.print("\nEnter name: "); 
         String s = in.nextLine();
    
         int i = name.indexOf(s);   // Find s in name
               
     
     
        
        
     } 
    

 

  A phonebook application using ArrayList  

  • Print not found if return value is −1 and otherwise print the name and phone in the entry i:

     public static void main(String[] args)
     {
         ArrayList<String> name  = new ArrayList<>();
         ArrayList<String> phone = new ArrayList<>();
    
         name.add("john");  phone.add("123-4567");
         name.add("anne");  phone.add("444-4444");
         name.add("mary");  phone.add("789-1234");
         name.add("peter"); phone.add("777-7777");
    
         Scanner in = new Scanner(System.in);
    
         System.out.print("\nEnter name: "); 
         String s = in.nextLine();
    
         int i = name.indexOf(s);   // Find s in name
               
         if ( i == -1 )
            System.out.println(s + " is not in phonebook"); 
         else
            System.out.println(name.get(i) + ": " + phone.get(i));
     } 
    

DEMO: demo/11-arrayList/03-find/PhoneBook.java

  lastIndexOf( element )  

  • Syntax of lastIndexOf( element ):

            myList.lastIndexOf(element); 

  • lastIndexOf( element ) returns the index of the last ocurrence of the element element stored in the ArrayList object:

  lastIndexOf( element )  

  • Syntax of lastIndexOf( element ):

            myList.lastIndexOf(element); 

  • Example:   find the index of the last occurence of "peter"

        public static void main(String[] args)
        {
            ArrayList<String> myList = new ArrayList<>();
            
            myList.add("john"); 
    	myList.add("peter"); 
            myList.add("mary"); 
    	myList.add("peter"); // Index 3
    
            System.out.println( myList.lastIndexOf("peter") ); // 3
            System.out.println( myList.lastIndexOf("xxxxx") ); // -1
        } 

DEMO: demo/11-arrayList/03-find/LastIndexOf.java

  contains( element )  

  • Syntax of contains( element ):

            myList.contains(element); 

  • contains( element ) returns true if the element element is found in the ArrayList object
    otherwise, contains( element ) returns false

  contains( element )  

  • Syntax of contains( element ):

            myList.contains(element); 

  • Example:   check if "peter" is stored in an ArrayList object

        public static void main(String[] args)
        {
            ArrayList<String> myList = new ArrayList<>();
            
            myList.add("john"); 
    	myList.add("peter"); 
            myList.add("mary"); 
    	myList.add("peter");
    
            System.out.println( myList.contains("peter") ); // true
            System.out.println( myList.contains("xxxxx") ); // false
        } 

DEMO: demo/11-arrayList/03-find/Contains.java