method

Hi experts,
I need a method that will go through the elements of an array of classes one by one and check its integer attribute against an entered number(parameter for the method).
the method should return all the elements of the array that have an integer equal to the entered integer.
I couldnt figure out how to work with the array

thank you
SamooramadAsked:
Who is Participating?
 
girionisConnect With a Mentor Commented:
With a few modifications this should also work:

public Integer [] getAllNumbers(Integer myArray, int number)
{
    List list = new ArrayList();

    for (int counter=0; counter<myArray.length; counter++)
    {
        if (myArray[i] instanceof Integer)
        {
            if ( ((Integer) myArray[i]).intValue() == number)
            {
                list.add(myArray[i]);
            }
        }
    }

    return list.toArray();
}
0
 
CEHJCommented:
>>array of classes

Do you mean that, or an array of objects?
0
 
CEHJConnect With a Mentor Commented:
If the latter, something like:

List equalIntegers = new ArrayList();
int comparedInt = ...
for(int i = 0;i < instances.length;i++) {
      int i = instances[i].getIntegerAttribute();
      if (i == comparedInt) {
            equalIntegers.add(new Integer(i));
      }
}
System.out.println(equalIntegers);
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
girionisCommented:
If your array is called "myArray" you could do:



public Integer [] getAllNumbers(Integer myArray, int number)
{
    List list = new ArrayList();

    for (int counter=0; counter<myArray.length; counter++)
    {
        if ( ((Integer) myArray[i]).intValue() == number)
        {
            list.add(myArray[i]);
        }
    }

    return list.toArray();
}

If you use any other types just replace the "Integer" with the type you want.
0
 
SamooramadAuthor Commented:
>>Do you mean that, or an array of objects?
I mean an array of a class I created.. it has integer attributes and strings and boolean ..
But this method should only invlove the integer
0
 
CEHJCommented:
>>I mean an array of a class I created..

OK. The code i  posted should work then. 'comparedInt' would be the input to the method
0
 
SamooramadAuthor Commented:
would those example work for that?
0
 
expertmbCommented:
>>the method should return all the elements of the array that have an integer equal to the entered integer.
CEHJ
it should return the element of the array i.e instance

>>equalIntegers.add(new Integer(i));
equalIntegers.add(instances[i]);
0
 
girionisConnect With a Mentor Commented:
And change this:

> public Integer [] getAllNumbers(Integer myArray, int number)

to this:

public Integer [] getAllNumbers(Object myArray, int number)

0
 
girionisConnect With a Mentor Commented:
public Object [] getAllNumbers(Object myArray, int number)
0
 
expertmbConnect With a Mentor Commented:
>>I mean an array of a class I created.. it has integer attributes and strings and boolean ..
But this method should only invlove the integer

List list = new ArrayList();
int number = somevalue;
for(int i = 0;i < instances.length;i++) {
if(instances[i] instanceof Integer){
  if ( ((Integer) instances[i]).intValue() == number)
        {
            list.add(instances[i]);
        }
 }
}
0
 
girionisCommented:
A sample code:

Object [] myArray = new Object[3];
myArray[0] = "hey";
myArray[1] = new Boolean(true);
myArray[2] = new Integer(1);

Object [] resultArray = getAllNumbers(myArray, 1);
System.out.println("numbers equal found:");
for (int counter=0; counter<resultArray.length; counter++)
{
    System.out.println(((Integer) resultArray[i]).intValue());
}
...
...
public Object [] getAllNumbers(Object myArray, int number)
{
    List list = new ArrayList();

    for (int counter=0; counter<myArray.length; counter++)
    {
        if (myArray[i] instanceof Integer)
        {
            if ( ((Integer) myArray[i]).intValue() == number)
            {
                list.add(myArray[i]);
            }
        }
    }

    return list.toArray();
}
0
 
SamooramadAuthor Commented:
>>OK. The code i  posted should work then. 'comparedInt' would be the input to the method

Cehj my array isnt a list. Does that make any difference or would it still work?
0
 
objectsConnect With a Mentor Commented:
this should be helpful to you:

http://java.sun.com/docs/books/tutorial/java/data/arrays.html

public MyClass[] getAllNumbers(MyClass[] myArray, int number)
{
    List list = new ArrayList();

    for (int counter=0; counter<myArray.length; counter++)
    {
            if (myArray[i].getIntAttribute() == number)
            {
                list.add(myArray[i]);
            }
        }
    }

    return (MyClass[]) list.toArray(new MyClass[0]);
}
0
 
SamooramadAuthor Commented:
>>equalIntegers.add(new Integer(i));

Cehj this only returns the integer right? I need it to return the whole class with the matching integer
0
 
SamooramadAuthor Commented:
girionis do I just replace Object with my class in:

public Object [] getAllNumbers(Object myArray, int number)
???
0
 
objectsCommented:
> I need it to return the whole class with the matching integer

The method I posted above will return all the objects that have matching integer attribute.
0
 
girionisCommented:
> girionis do I just replace Object with my class in:

Yes you do, you will also need to do the appropriate casting when you receive the array.
0
 
SamooramadAuthor Commented:
>>The method I posted above will return all the objects that have matching integer attribute
yep that worked great objects :)
0
 
SamooramadAuthor Commented:
thank you everyone..  girionis answered first with what I wanted, so  girionis should get the accepted answer :)
but everyones help is greatly appritiated
0
 
CEHJCommented:
>>Cehj my array isnt a list. Does that make any difference or would it still work?

That doesn't matter. My example uses the source array and then adds to a List

>>the method should return all the elements of the array that have an integer equal to the entered integer.

You can amend my example to either

a. return the array indexes

List equalIntegers = new ArrayList();
int comparedInt = ...
for(int i = 0;i < instances.length;i++) {
      int instanceInt = instances[i].getIntegerAttribute();
      if (instanceInt == comparedInt) {
            equalIntegers.add(new Integer(i));
      }
}
System.out.println(equalIntegers);

or

b. Add the object references to the List

List equalIntegerObjects = new ArrayList();
int comparedInt = ...
for(int i = 0;i < instances.length;i++) {
      int instanceInt = instances[i].getIntegerAttribute();
      if (instanceInt == comparedInt) {
            equalIntegerObjects.add(instances[i]);
      }
}
0
 
CEHJCommented:
8-)
0
 
SamooramadAuthor Commented:
thanks CEHJ:)
0
 
objectsCommented:
0
 
girionisCommented:
:)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.