How do I return an array of objects in java?
-
3@peter i suppose return has only one meaning in programming. i.e. return some value from a function. DO you want to add anyother to the list. just kidding :DRubyDubee– RubyDubee2010-04-01 06:26:01 +00:00Commented Apr 1, 2010 at 6:26
-
I guess I didn't see what would be difficult about the actual return. The instantiation, perhaps.pkananen– pkananen2010-04-01 14:14:53 +00:00Commented Apr 1, 2010 at 14:14
7 Answers
Well, you can only actually return an array of references to objects - no expressions in Java actually evaluate to objects themselves. Having said that, returning an array of Object references is easy:
public Object[] yourMethod()
{
Object[] array = new Object[10];
// Fill array
return array;
}
(To be utterly pedantic about it, you're returning a reference to an array of object references.)
Answers posted earlier solves your problem perfectly ... so just for sake of another choice .. i will suggest you to use List : may be ArrayList<Object> so it could go as :
public List<Object> getListOfObjects() {
List<Object> arrayList = new ArrayList<Object>();
// do some work
return arrayList;
}
Good luck;
3 Comments
What is the data structure that you have?
- If it is an array - just return it.
- If it is a Collection - use
toArray()(or preferablytoArray(T[] a)).
Comments
Try the following example,
public class array
{
public static void main(String[] args)
{
Date[] a = new Date [i];
a[0] = new Date(2, "January", 2005);
a[1] = new Date(3, "February", 2005);
a[2] = new Date(21, "March", 2005);
a[3] = new Date(28, "April", 2005);
for (int i = a.length - 1; i >= 0; i--)
{
a.printDate();
}
}
}
class Date
{
int day;
String month;
int year;
Date(int d, String m, int y)
{
day = d;
month = m;
year = y;
}
public void printDate()
{
System.out.println(a[i]);
}
}
Comments
Returning an object array has been explained above, but in most cases you don't need to. Simply pass your object array to the method, modify and it will reflect from the called place. There is no pass by value in java.