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=230865b4d19270e76c79c4ec6344ae302ccf1b69> *routes all calls and text messages to me*