Steve: I tried to respond but in order to eexplain, I would have to get into deep details. Sorry mate. J. -----Original Message----- From: program-java-bounce@xxxxxxxxxxxxx [mailto:program-java-bounce@xxxxxxxxxxxxx] On Behalf Of Steve Meacham Sent: September 3, 2010 13:33 To: program-java@xxxxxxxxxxxxx Subject: [program-java] Re: Java: Redimensioning my existing array. If you're allowed to, what exactly is this data structure supposed to represent/do? On Fri, Sep 3, 2010 at 12:21 PM, Corbett, James <James.Corbett@xxxxxxxxxxxxx> wrote: Steve: I ended up with creating a class that contains the three values: Pseudo code.... Class LineAmount { String province; String valueOfSomething; //getter and setters that are public } In a singlton class I have the following: Public Map<String, LineAmounts> MyLineAmounts = new HashMap<String, LineAmount>(); And I access the new map with a public add and retreive method that evokes either the put or get methods of the map. I feel this is more robust. Jim -----Original Message----- From: program-java-bounce@xxxxxxxxxxxxx [mailto:program-java-bounce@xxxxxxxxxxxxx] On Behalf Of Steve Meacham Sent: September 3, 2010 12:42 To: program-java@xxxxxxxxxxxxx Subject: [program-java] Re: Java: Redimensioning my existing array. Please allow me to offer a didactic review of what Java arrays actually are. This will be a little bit long, so wait to read it until you have time to go step-by-step through what would be about a whole page in a textbook. // This is a single, primitive, double double d; // no jokes, guys // This is a single dimensional array of primitive doubles double[] ad; // This is a single dimensional array of single dimensional arrays of doubles, which can be used to simulate a two dimensional array double[][] aad; // This is a single dimensional array of single dimensional arrays of single dimensional arrays of doubles, which can be used to simulate a three dimensional array double[][][] aaad; Java only supports single-dimensional arrays. I stopped with three, but most Java implementations will allow you to go up to 255 levels deep like this. I don't recommend it. Each single dimensional array allows from zero to Integer.MAX_VALUE elements. Please note that it isn't until you reserve the memory that the lengths are specified. This allows a lot of flexibility, such as not knowing how bit to make the arrays until run-time. Now, let's reserve memory for the two-dimensional array in the most primitive way. aad = new double[5][]; // This creates an array of five arrays of doubles aad[0] = new double[10]; // The creates the first one, an array of ten doubles aad[1] = new double[2]; // The creates the second one, an array of two doubles aad[2] = new double[6]; // The creates the third one, an array of six doubles aad[3] = new double[0]; // The creates the fourth one, an array of zero doubles aad[4] = new double[5]; // The creates the fifth one, an array of five doubles Please also note that each of these sizes could have been done with a variable and not known until run-time. Try to do THAT in FORTRAN! Of course, Java offers what I call "syntactic sugar" for when all the dimensions are the same: // This creates an array of five arrays of doubles. It also creates five arrays of ten doubles each. aad = new double[5][10]; This is good and bad at the same time. It is good because it is flexible and powerful. Bad, because not only is it confusing to just about everybody (no, you're not alone), but because it slows things down a bit. In most languages finding the value stored in aad[2][5] is as simple and fast as adding two times five time the size of a double to the starting address of the multi-dimensional array. In most languages, most or all of this can be done at compile time, making it into a simple memory de-reference. In Java, however, the nested arrays must be traversed at runtime, one at a time. Finding add[2][5] become "retrieve and de-reference the value at add[2]; then find the value at add[5]." Arrays of Objects, rather than primitives makes this even worse. Because of this, arrays are very unique and special-purposed in Java. It's not like in Fortran where, if you can't do it in with array, it isn't worth doing. I'm not sure what problem you're trying to solve, Jim, or what domain you're trying to represent, but in Java, using nested-arrays is rarely the best solution. The main places I find them to be appropriate is in graphics, cryptography, and other very specialized applications. In business application programming, not so much. There, the Collection Classes are the main containers for multiple instances of related same-type data, and Classes are the main containers for related but different-type data. Steve On Fri, Sep 3, 2010 at 10:26 AM, Willem <dwillemv@xxxxxxxxx> wrote: Arrays are by design not resizable. You need to copy the data to a bigger array. This is what ArrayList does behind the seens, and linkedList does the same for adding nodes. On 9/3/2010 4:24 PM, Homme, James wrote: Hi Guru, Maybe you can adapt the code about dynamic arrays on this page. It says Java can't really do dynamic arrays, but talks about a way to get around the problem. http://math.hws.edu/javanotes/c7/s3.html Jim Jim Homme, Usability Services, Phone: 412-544-1810. Skype: jim.homme Internal recipients, Read my accessibility blog <http://mysites.highmark.com/personal/lidikki/Blog/default.aspx> . Discuss accessibility here <http://collaborate.highmark.com/COP/technical/accessibility/default.aspx> . Accessibility Wiki: Breaking news and accessibility advice <http://collaborate.highmark.com/COP/technical/accessibility/Accessibility%20Wiki/Forms/AllPages.aspx> From: program-java-bounce@xxxxxxxxxxxxx [mailto:program-java-bounce@xxxxxxxxxxxxx] On Behalf Of Corbett, James Sent: Friday, September 03, 2010 9:40 AM To: 'program-java@xxxxxxxxxxxxx' Subject: [program-java] Java: Redimensioning my existing array. Hello all: I have an array of type double.... Double[][] myDoubleArray = new double[2][13]; ...I now need to add an additional field.... Should I redimension the array like double[2][13][5] or should I invest in either an arrayList or HashMap? Jim James M. Corbett Programmer / Analyst | Canada Revenue Agency | Agence du revenue du Canada 875 Heron Rd. Ottawa, On. K1A0L5 James.Corbett@xxxxxxxxxxxxx Telephone | Téléphone: (613) 941-1338 Facsimile | Télécopieur: (613) 941-2261 Government of Canada | Gouvernement du Canada ________________________________ This e-mail and any attachments to it are confidential and are intended solely for use of the individual or entity to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this e-mail without the author's prior permission. The views expressed in this e-mail message do not necessarily represent the views of Highmark Inc., its subsidiaries, or affiliates. -- Steve Meacham +1 (202) 455-8732 +<https://clients4.google.com/voice/embed/webCallButton?id=230865b4d1927 +0e76c79c4ec6344ae302ccf1b69> routes all calls and text messages to me