Check if object 1 contains object 2 : Array Sort Search « Collections Data Structure « Java

Java
1. 2D Graphics GUI
2. 3D
3. Advanced Graphics
4. Ant
5. Apache Common
6. Chart
7. Class
8. Collections Data Structure
9. Data Type
10. Database SQL JDBC
11. Design Pattern
12. Development Class
13. EJB3
14. Email
15. Event
16. File Input Output
17. Game
18. Generics
19. GWT
20. Hibernate
21. I18N
22. J2EE
23. J2ME
24. JDK 6
25. JNDI LDAP
26. JPA
27. JSP
28. JSTL
29. Language Basics
30. Network Protocol
31. PDF RTF
32. Reflection
33. Regular Expressions
34. Scripting
35. Security
36. Servlets
37. Spring
38. Swing Components
39. Swing JFC
40. SWT JFace Eclipse
41. Threads
42. Tiny Application
43. Velocity
44. Web Services SOA
45. XML
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java » Collections Data Structure » Array Sort SearchScreenshots 
Check if object 1 contains object 2
  
/*
 * Copyright (c) 2002-2003 by OpenSymphony
 * All rights reserved.
 */

import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Map;


/**
 * <code>ContainUtil</code> will check if object 1 contains object 2.
 * Object 1 may be an Object, array, Collection, or a Map
 *
 @author Matt Baldree (matt@smallleap.com)
 @version $Revision: 2737 $
 */
public class ContainUtil {

  /**
     * Determine if <code>obj2</code> exists in <code>obj1</code>.
     *
     * <table borer="1">
     *  <tr>
     *      <td>Type Of obj1</td>
     *      <td>Comparison type</td>
     *  </tr>
     *  <tr>
     *      <td>null<td>
     *      <td>always return false</td>
     *  </tr>
     *  <tr>
     *      <td>Map</td>
     *      <td>Map containsKey(obj2)</td>
     *  </tr>
     *  <tr>
     *      <td>Collection</td>
     *      <td>Collection contains(obj2)</td>
     *  </tr>
     *  <tr>
     *      <td>Array</td>
     *      <td>there's an array element (e) where e.equals(obj2)</td>
     *  </tr>
     *  <tr>
     *      <td>Object</td>
     *      <td>obj1.equals(obj2)</td>
     *  </tr>
     * </table>
     *
     *
     @param obj1
     @param obj2
     @return
     */
    public static boolean contains(Object obj1, Object obj2) {
        if ((obj1 == null|| (obj2 == null)) {
            //log.debug("obj1 or obj2 are null.");
            return false;
        }

        if (obj1 instanceof Map) {
            if (((Mapobj1).containsKey(obj2)) {
                //log.debug("obj1 is a map and contains obj2");
                return true;
            }
        else if (obj1 instanceof Collection) {
            if (((Collectionobj1).contains(obj2)) {
                //log.debug("obj1 is a collection and contains obj2");
                return true;
            }
        else if (obj1.getClass().isArray()) {
            for (int i = 0; i < Array.getLength(obj1); i++) {
                Object value = null;
                value = Array.get(obj1, i);

                if (value.equals(obj2)) {
                    //log.debug("obj1 is an array and contains obj2");
                    return true;
                }
            }
        else if (obj1.equals(obj2)) {
            //log.debug("obj1 is an object and equals obj2");
            return true;
        }

        //log.debug("obj1 does not contain obj2: " + obj1 + ", " + obj2);
        return false;
    }
}
////////////////
package com.opensymphony.webwork.util;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import junit.framework.TestCase;

import com.opensymphony.webwork.util.ContainUtil;

public class ContainUtilTest extends TestCase {

  public void testNull() throws Exception {
    assertFalse(ContainUtil.contains(null, null));
    assertFalse(ContainUtil.contains(new Object()null));
    assertFalse(ContainUtil.contains(null, new Object()));
  }
  
  public void testSimpleList() throws Exception {
    List l = new ArrayList();
    l.add("one");
    l.add("two");
    
    assertFalse(ContainUtil.contains(l, "three"));
    assertTrue(ContainUtil.contains(l, "one"));
    assertTrue(ContainUtil.contains(l, "two"));
  }
  
  public void testSimpleSet() throws Exception {
    Set s = new LinkedHashSet();
    s.add("one");
    s.add("two");
    
    assertFalse(ContainUtil.contains(s, "thre"));
    assertTrue(ContainUtil.contains(s, "one"));
    assertTrue(ContainUtil.contains(s, "two"));
  }
  
  public void testComplexList() throws Exception {
    List l = new ArrayList();
    l.add(new MyObject("tm_jee", Integer.valueOf("20")));
    l.add(new MyObject("jenny", Integer.valueOf("22")));
    
    assertFalse(ContainUtil.contains(l, new MyObject("paul", Integer.valueOf("50"))));
    assertFalse(ContainUtil.contains(l, new MyObject("tm_jee", Integer.valueOf("44"))));
    assertTrue(ContainUtil.contains(l, new MyObject("tm_jee", Integer.valueOf("20"))));
    assertTrue(ContainUtil.contains(l, new MyObject("jenny", Integer.valueOf("22"))));
  }
  
  public void testComplexMap() throws Exception {
    Set s = new LinkedHashSet();
    s.add(new MyObject("tm_jee", Integer.valueOf("20")));
    s.add(new MyObject("jenny", Integer.valueOf("22")));
    
    assertFalse(ContainUtil.contains(s, new MyObject("paul", Integer.valueOf("50"))));
    assertFalse(ContainUtil.contains(s, new MyObject("tm_jee", Integer.valueOf("44"))));
    assertTrue(ContainUtil.contains(s, new MyObject("tm_jee", Integer.valueOf("20"))));
    assertTrue(ContainUtil.contains(s, new MyObject("jenny", Integer.valueOf("22"))));
  }
  
  public void testObject() throws Exception {
    assertFalse(ContainUtil.contains("aaa""bbb"));
    assertFalse(ContainUtil.contains(new MyObject("tm_jee", Integer.valueOf("22"))new MyObject("tmjee", Integer.valueOf("22"))));
    assertTrue(ContainUtil.contains("apple""apple"));
    assertTrue(ContainUtil.contains(new MyObject("tm_jee", Integer.valueOf("22"))new MyObject("tm_jee", Integer.valueOf("22"))));
  }


  public static class MyObject {
    private String name;
    private Integer age;
    
    public MyObject(String name, Integer age) {
      this.name = name;
      this.age = age;
    }
    
    public int hashCode() {
      return this.name.hashCode();
    }
    
    public boolean equals(Object obj) {
      if (obj == null) { return false}
      if ((obj instanceof MyObject)) { return false}
      MyObject tmp = (MyObjectobj;
      if (
          tmp.name.equals(this.name&&
          tmp.age.equals(this.age)
        ) {
        return true;
      }
      return false;
        
    }
  }
}

   
    
  
Related examples in the same category
1. Quicksort implementation for sorting arrays
2. Search for a specified value of an array
3. Inserting an Element into a Sorted Array
4. How to sort an array
5. Sorting an Array in Descending (Reverse) Order
6. Sort in reverse order
7. Sorting an Array
8. Finding an Element in a Sorted Array
9. Sort array values in descending order
10. Find items in an array
11. Reverses the order of the given object array.
12. Reverses the order of the given long type value array.
13. Reverses the order of the given int type value array.
14. Reverses the order of the given short type value array.
15. Reverses the order of the given char type value array.
16. Reverses the order of the given byte type array.
17. Reverses the order of the given double value type array.
18. Reverses the order of the given float type value array.
19. Reverses the order of the given boolean type value array.
20. Produces a new array containing the elements between the start and end indices.
21. Produces a new long array containing the elements between the start and end indices.
22. Produces a new int array containing the elements between the start and end indices.
23. Produces a new short array containing the elements between the start and end indices.
24. Produces a new char array containing the elements between the start and end indices.
25. Produces a new byte array containing the elements between the start and end indices.
26. Produces a new double array containing the elements between the start and end indices.
27. Produces a new float array containing the elements between the start and end indices.
28. Produces a new boolean array containing the elements between the start and end indices.
29. Get index of long type array
30. Get the index and last index of an int type value array
31. Get the index and last index of a short type value array
32. Get the index and last index of a char type value array
33. Get the index and last index of byte type array
34. Get the index and last index of a double type array
35. Get the element index and last index in a float type value array
36. Get the element index or last index among a boolean type array
37. Finds the index of the given object in the array starting at the given index.
38. Finds the index of the given object in the array.
39. Returns the index in the source array where the first occurrence of the specified byte pattern is found
40. Returns the index in the source array where the first occurrence of the specified text (a String, converted to a byte array) is found
41. Returns the index in the source array where the last occurrence of the specified byte pattern is found
42. Returns the index in the source array where the last occurrence of the specified text (a String, converted to a byte array) is found
43. Returns the maximum value in a byte-type array.
44. Returns the maximum value in a double-type array.
45. Returns the maximum value in a float-type array.
46. Returns the maximum value in a long-value array.
47. Returns the maximum value in a short-type array.
48. Returns the maximum value in an int-type array.
49. Returns the minimum value in a double-type array.
50. Returns the minimum value in a float-value array.
51. Returns the minimum value in a short-type array.
52. Returns the minimum value in an array.
53. Returns the minimum value in an int-type array.
54. Returns the minimum value in an short-type array.
55. Search for an object in an array.
56. Finds the last index of the given object in the array starting at the given index.
57. Finds the last index of the given object within the array.
58. If array contains given element
59. Sort array utilities
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.