Solved

method

Posted on 2004-08-16
25
318 Views
Last Modified: 2010-03-31
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
0
Comment
Question by:Samooramad
  • 8
  • 7
  • 5
  • +2
25 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 11808440
>>array of classes

Do you mean that, or an array of objects?
0
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 100 total points
ID: 11808447
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
 
LVL 35

Expert Comment

by:girionis
ID: 11808452
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
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 

Author Comment

by:Samooramad
ID: 11808461
>>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
 
LVL 86

Expert Comment

by:CEHJ
ID: 11808468
>>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
 

Author Comment

by:Samooramad
ID: 11808469
would those example work for that?
0
 
LVL 6

Expert Comment

by:expertmb
ID: 11808473
>>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
 
LVL 35

Accepted Solution

by:
girionis earned 250 total points
ID: 11808484
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
 
LVL 35

Assisted Solution

by:girionis
girionis earned 250 total points
ID: 11808487
And change this:

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

to this:

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

0
 
LVL 35

Assisted Solution

by:girionis
girionis earned 250 total points
ID: 11808489
public Object [] getAllNumbers(Object myArray, int number)
0
 
LVL 6

Assisted Solution

by:expertmb
expertmb earned 50 total points
ID: 11808493
>>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
 
LVL 35

Expert Comment

by:girionis
ID: 11808508
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
 

Author Comment

by:Samooramad
ID: 11808510
>>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
 
LVL 92

Assisted Solution

by:objects
objects earned 100 total points
ID: 11808533
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
 

Author Comment

by:Samooramad
ID: 11808539
>>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
 

Author Comment

by:Samooramad
ID: 11808548
girionis do I just replace Object with my class in:

public Object [] getAllNumbers(Object myArray, int number)
???
0
 
LVL 92

Expert Comment

by:objects
ID: 11808550
> 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
 
LVL 35

Expert Comment

by:girionis
ID: 11808555
> 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
 

Author Comment

by:Samooramad
ID: 11808572
>>The method I posted above will return all the objects that have matching integer attribute
yep that worked great objects :)
0
 

Author Comment

by:Samooramad
ID: 11808590
thank you everyone..  girionis answered first with what I wanted, so  girionis should get the accepted answer :)
but everyones help is greatly appritiated
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 11808610
>>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
 
LVL 86

Expert Comment

by:CEHJ
ID: 11808634
8-)
0
 

Author Comment

by:Samooramad
ID: 11808640
thanks CEHJ:)
0
 
LVL 92

Expert Comment

by:objects
ID: 11808647
0
 
LVL 35

Expert Comment

by:girionis
ID: 11808700
:)
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question