This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Soft Skills and have John Sonmez on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes how to return an array from a method Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "how to return an array from a method" Watch "how to return an array from a method" New topic
Author

how to return an array from a method

Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
class Test
{
public int methode()
{
int a = {1,2,3,4,5};
return a; // how to return it ??? return a[] or anyother way?
}
}

give me a solution ...


Manisekar
vanlalhmangaiha khiangte
Ranch Hand

Joined: Sep 11, 2006
Posts: 170
Instead of returning a single integer in
public int methode()
Return an array of integers like
public int[] methode()
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24187
    
  34

Just like this:



[Jess in Action][AskingGoodQuestions]
Peter Chase
Ranch Hand

Joined: Oct 30, 2001
Posts: 1970
Your problem isn't with the "return", it's with the earlier declaration of variable "a" and the declaration of the method. In both cases, you declared it as "int", but it is [a reference to] an array, so should have been declared "int[]".

Once your method and your variable "a" are declared as "int[]", you can just use "return a" to return [a reference to] the array.


Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
when i tried to compile the following program, i got an incompatible type error ... (for returning an array) ....

import java.lang.reflect.Array;

class ResizeArray
{
static int z;
public int resizeArr(int [] b,int n)
{

z = n;
b = new int[10];
b = (int[])ArrayUtils.expand(b);
return b;

}

public static Object expand(Object a)
{
Class cl = a.getClass();
if (!cl.isArray()) return null;
int length = Array.getLength(a);
int newLength = z;
Class componentType = a.getClass().getComponentType();
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(a, 0, newArray, 0, length);
return newArray;
}

public static void main(String args[])
{
ResizeArray ra = new ResizeArray();
int a[] = {1,2,3,4,5};
System.out.println("main length "+a.length);
int d=3;
ra.resizeArr(a,d);
}
}

watz the error in it ???
Kelvin Chenhao Lim
Ranch Hand

Joined: Oct 20, 2007
Posts: 513
Hi Manisekar,

You forgot to change the return type of your resizeArr() method to declare an array return type:

public int[] resizeArr(int [] b,int n)
{
z = n;
b = new int[10];
b = (int[])ArrayUtils.expand(b);
return b;
}


SCJP 5.0
Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
yup ... you are correct, Kelvin. i didnt notice that ... thanks
Bert Bates
author
Sheriff

Joined: Oct 14, 2002
Posts: 8883
    
    5
Hey Manisekar,

You've hit upon a very, very important idea in Java, and in OO languages in general. It's useful to think of the methods you create for your objects as message senders and receivers. As you get deeper and deeper into the language you'll see that a method's "signature" (in other words the messages it must receive and the message it returns) are always a crucial part of understanding the method itself - in many cases the ONLY thing you'll know about how a method works is what you must send to it, and what it will return to you. So, you're on the right track figuring out how to return an array!

Bert


Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: how to return an array from a method