Solved

How To - multi dimensional ArrayList of 2 ArrayLists ????

Posted on 2008-10-29
10
3,870 Views
Last Modified: 2012-06-22
Experts:

What's the (best) way/syntax to create an Array/ArrayList/List that consists of 2 ArrayLists?  
Example:

List<someObject> oldObject = new ArrayList<someObject>();
List<someObject> newObject = new ArrayList<someObject>();
// do stuff
// I want to return a Array/ArrayList/List containing
// List<someObject> oldObject, List<someObject> newObject
// something like this:  someObject[][] = new someObject[oldObject.size][newObject.size];
Anybody know how to do that?
0
Comment
Question by:pdlarue
  • 6
  • 4
10 Comments
 
LVL 24

Expert Comment

by:sciuriware
ID: 22835134
     ArrayList[] a2 = new ArrayList[2];
      a2[0] = new ArrayList<String>();
      a2[1] = new ArrayList<String>();

JAVA refuses to create a generic 2 dimensional List-family,

List<String>[] = new ArrayList<String>()[];  // Is not possible.

;JOOP!
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 22835139
I meant:

List<String>[] = new ArrayList<String>()[2];  // Is not possible.

;JOOP!
0
 

Author Comment

by:pdlarue
ID: 22836837
OK.  Is it possible to create a multi-dimensional array that contains 2 ArrayLists?
0
 

Author Comment

by:pdlarue
ID: 22836985
Is it possible to use multidimensional HashMap?  Something like this:

myHashMap.put (key, object1, object2);
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 22838504
Think: what would be the result of

        myHashMap.get(someKey) ??

It IS possible on the contrary to create a HashMap of HashMap's:

       HashMap<String, HashMap<String, MyObject>> h2 = new HashMap<String, HashMap>();

now you can:

       h2.put(thisKey, new HashMap<String, MyObject>());

;JOOP!
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:pdlarue
ID: 22843315
OK.  Your answers are great.  I know if anyone can point me in the right direction you can.  I may not be phrasing the question quite right.  This is the result I want.  Do you know of any way to do this?

newCustomer[0], oldCustomer[0]
newCustomer[1], oldCustomer[1]
newCustomer[2], oldCustomer[2]
newCustomer[3], oldCustomer[3]
newCustomer[4], oldCustomer[4]

   OR   (if HashMap is necessary)

"0",newCustomer[0], oldCustomer[0]
"1",newCustomer[1], oldCustomer[1]
"2",newCustomer[2], oldCustomer[2]
"3",newCustomer[3], oldCustomer[3]
"4",newCustomer[4], oldCustomer[4]


I am trying to bundlie this up in an Array or HashMap or something from the server-side code and send to the client-side code.  The gui developer is using Flex, which has the ability to get multiple objects in the same iteration (just like the first group of objects listed above).  Since this is a comparison between the old object and the new object (to include properties) the ListArrays will be the same size.

If you can tell me how to do this I'll bump up the points to 500.  Thank you for your help.
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 22843928
A HashMap stores relations from 1 key to only 1 object.

You can of course put the next 'hidden' class at the bottom of your source:

class CustomerPair
{
     Customer oldC;
     Customer newC;

     public CustomerPair(Customer o, Customer n)
     {
          oldC = o;
          newC = n;
     }
}


now you can use code like this (ONLY IN THIS CLASS ABOVE THE HIDDEN CLASS!):

HashMap<String, CustomerPair> links = new HashMap<String, CustomerPair>();

// and:

links.put("Jensen", new CustomerPair(new Customer(p), new Customer(q)));

// Not very beautiful but it's a workable solution.
// And, please, don't praise me too much; I'm just an old programmer ..................

;JOOP!
0
 
LVL 24

Accepted Solution

by:
sciuriware earned 500 total points
ID: 22843947
And, because one day you want the data back:

   CustomerPair t = links.get("Jensen");
   if(t != null)
   {
         Customer oldJensen = t.oldC;
.....

;JOOP!
0
 

Author Comment

by:pdlarue
ID: 22846500
Thank you.  I'll give it a try.
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 22847937
Thanks, you gave me a promotion.

;JOOP!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

929 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now