Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > How do you copy multidimension array from Vector to Object[][] ?

Reply
Thread Tools

How do you copy multidimension array from Vector to Object[][] ?

 
 
Ronin
Guest
Posts: n/a
 
      01-04-2007
I have absolutely no idea how to do this. I inserted a [] array into a
vector, which then ofcourse became a [][] array, but now can't get it
out back to a Object[][].


Vector vector = new Vector();
vector.addElement(new Object[]{"A","B"});
vector.addElement(new Object[]{"C","D"});

Object obj[] = new Object[m.size()]; //this works so far

m.copyInto((Object[]) obj); //this works so far
Object[][] attribute = (Object[][]) obj; //BANG!!!

why the hell wont it work?

for now I'll just use the crappy m.elementAt() function and cast to [].
All this casting in a loop eats CPU though.

 
Reply With Quote
 
 
 
 
Chris
Guest
Posts: n/a
 
      01-04-2007
Ronin wrote:
> I have absolutely no idea how to do this. I inserted a [] array into a
> vector, which then ofcourse became a [][] array, but now can't get it
> out back to a Object[][].
>
>
> Vector vector = new Vector();
> vector.addElement(new Object[]{"A","B"});
> vector.addElement(new Object[]{"C","D"});
>
> Object obj[] = new Object[m.size()]; //this works so far
>
> m.copyInto((Object[]) obj); //this works so far
> Object[][] attribute = (Object[][]) obj; //BANG!!!
>
> why the hell wont it work?
>
> for now I'll just use the crappy m.elementAt() function and cast to [].
> All this casting in a loop eats CPU though.
>


Some random, maybe not-useful ideas:

-- Don't use Vector. Use ArrayList.

-- ArrayList.toArray() is helpful

-- One of the problems with the Collection classes is that you have to
cast everything. Generics don't help, because it still does a cast
internally. If you have a performance-intensive app, don't use
Collections. Write your own wrapper around an array of the proper type.
(But *only* if know for sure that casts are causing a performance problem).

 
Reply With Quote
 
 
 
 
Ronin
Guest
Posts: n/a
 
      01-05-2007
Hi Chris thanks but I cant use ArrayList as I'm using J2ME. The API
does not have that class.

the thing is im reading data from a server and I dont know the size
beforehand. So I'm first dropping it into a Vector than move it to a
Object[][] so to save the whole casting shebang when im iterating
through it.

If there is no solution to port to Object[][] from vector.copyInto,
then yes I'll have to write my own little Vector class. I'll keep my
eye on this thread for a while.

cheers



Chris wrote:
> Ronin wrote:
> > I have absolutely no idea how to do this. I inserted a [] array into a
> > vector, which then ofcourse became a [][] array, but now can't get it
> > out back to a Object[][].
> >
> >
> > Vector vector = new Vector();
> > vector.addElement(new Object[]{"A","B"});
> > vector.addElement(new Object[]{"C","D"});
> >
> > Object obj[] = new Object[m.size()]; //this works so far
> >
> > m.copyInto((Object[]) obj); //this works so far
> > Object[][] attribute = (Object[][]) obj; //BANG!!!
> >
> > why the hell wont it work?
> >
> > for now I'll just use the crappy m.elementAt() function and cast to [].
> > All this casting in a loop eats CPU though.
> >

>
> Some random, maybe not-useful ideas:
>
> -- Don't use Vector. Use ArrayList.
>
> -- ArrayList.toArray() is helpful
>
> -- One of the problems with the Collection classes is that you have to
> cast everything. Generics don't help, because it still does a cast
> internally. If you have a performance-intensive app, don't use
> Collections. Write your own wrapper around an array of the proper type.
> (But *only* if know for sure that casts are causing a performance problem).


 
Reply With Quote
 
Ronin
Guest
Posts: n/a
 
      01-05-2007
Christ! what a good night of sleep can do!

Here the solution:

Vector vector = new Vector();
vector.addElement(new Object[]{"A","B"});
vector.addElement(new Object[]{"C","D"});
Object obj[][] = new Object[vector.size()][2];
vector.copyInto((Object[]) obj);



Ronin wrote:
> Hi Chris thanks but I cant use ArrayList as I'm using J2ME. The API
> does not have that class.
>
> the thing is im reading data from a server and I dont know the size
> beforehand. So I'm first dropping it into a Vector than move it to a
> Object[][] so to save the whole casting shebang when im iterating
> through it.
>
> If there is no solution to port to Object[][] from vector.copyInto,
> then yes I'll have to write my own little Vector class. I'll keep my
> eye on this thread for a while.
>
> cheers
>
>
>
> Chris wrote:
> > Ronin wrote:
> > > I have absolutely no idea how to do this. I inserted a [] array into a
> > > vector, which then ofcourse became a [][] array, but now can't get it
> > > out back to a Object[][].
> > >
> > >
> > > Vector vector = new Vector();
> > > vector.addElement(new Object[]{"A","B"});
> > > vector.addElement(new Object[]{"C","D"});
> > >
> > > Object obj[] = new Object[m.size()]; //this works so far
> > >
> > > m.copyInto((Object[]) obj); //this works so far
> > > Object[][] attribute = (Object[][]) obj; //BANG!!!
> > >
> > > why the hell wont it work?
> > >
> > > for now I'll just use the crappy m.elementAt() function and cast to [].
> > > All this casting in a loop eats CPU though.
> > >

> >
> > Some random, maybe not-useful ideas:
> >
> > -- Don't use Vector. Use ArrayList.
> >
> > -- ArrayList.toArray() is helpful
> >
> > -- One of the problems with the Collection classes is that you have to
> > cast everything. Generics don't help, because it still does a cast
> > internally. If you have a performance-intensive app, don't use
> > Collections. Write your own wrapper around an array of the proper type.
> > (But *only* if know for sure that casts are causing a performance problem).


 
Reply With Quote
 
Ronin
Guest
Posts: n/a
 
      01-05-2007
Just for those that want to use Vector.toArray() methods .... no such
thing in J2ME

its hacking all the way.

Ronin wrote:
> Christ! what a good night of sleep can do!
>
> Here the solution:
>
> Vector vector = new Vector();
> vector.addElement(new Object[]{"A","B"});
> vector.addElement(new Object[]{"C","D"});
> Object obj[][] = new Object[vector.size()][2];
> vector.copyInto((Object[]) obj);
>
>
>
> Ronin wrote:
> > Hi Chris thanks but I cant use ArrayList as I'm using J2ME. The API
> > does not have that class.
> >
> > the thing is im reading data from a server and I dont know the size
> > beforehand. So I'm first dropping it into a Vector than move it to a
> > Object[][] so to save the whole casting shebang when im iterating
> > through it.
> >
> > If there is no solution to port to Object[][] from vector.copyInto,
> > then yes I'll have to write my own little Vector class. I'll keep my
> > eye on this thread for a while.
> >
> > cheers
> >
> >
> >
> > Chris wrote:
> > > Ronin wrote:
> > > > I have absolutely no idea how to do this. I inserted a [] array into a
> > > > vector, which then ofcourse became a [][] array, but now can't get it
> > > > out back to a Object[][].
> > > >
> > > >
> > > > Vector vector = new Vector();
> > > > vector.addElement(new Object[]{"A","B"});
> > > > vector.addElement(new Object[]{"C","D"});
> > > >
> > > > Object obj[] = new Object[m.size()]; //this works so far
> > > >
> > > > m.copyInto((Object[]) obj); //this works so far
> > > > Object[][] attribute = (Object[][]) obj; //BANG!!!
> > > >
> > > > why the hell wont it work?
> > > >
> > > > for now I'll just use the crappy m.elementAt() function and cast to [].
> > > > All this casting in a loop eats CPU though.
> > > >
> > >
> > > Some random, maybe not-useful ideas:
> > >
> > > -- Don't use Vector. Use ArrayList.
> > >
> > > -- ArrayList.toArray() is helpful
> > >
> > > -- One of the problems with the Collection classes is that you have to
> > > cast everything. Generics don't help, because it still does a cast
> > > internally. If you have a performance-intensive app, don't use
> > > Collections. Write your own wrapper around an array of the proper type.
> > > (But *only* if know for sure that casts are causing a performance problem).


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
multidimension arrays with unknown bounds Andy Gibbs C++ 4 05-20-2011 01:11 PM
multidimension array questions foker C++ 29 09-09-2006 01:16 AM
Free memory allocate by a STL vector, vector of vector, map of vector Allerdyce.John@gmail.com C++ 8 02-18-2006 12:48 AM
Bind multidimension Array to Datagrid Faizan Ahmed ASP .Net 1 10-25-2004 08:07 PM



Advertisments