Solved

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

Posted on 2008-10-29
10
3,897 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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
 

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

Enroll in June's Course of the Month

June’s Course of the Month is now available! Experts Exchange’s Premium Members, Team Accounts, and Qualified Experts have access to a complimentary course each month as part of their membership—an extra way to sharpen your skills and increase training.

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…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
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 one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

688 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