Hashtable ordering

When iterating over a hashtable my elements come back out in the reverse order of the way they went in (like they are being un-stacked).
I need them to come out in the order they were added but I'm not sure how to do this. I can't really just add them backwards partly for logical reasons and also because a user may add new items at runtime.
I'm sure I just don't know how to use a hashtable correctly or maybe should be using something other than a hashtable.
Any pointers? :)

Brilliant! Thank you :)

Similar Messages

  • How can I get keys from Hashtable in the same order?

    Hello, everyone.
    I have a Hashtable containing key-value pairs, I need to get the keys in the same order as I use
    method put(key,value) to save the key-value pairs. But I can only find Hashtable.keys() to fetch the keys in form of Enumeration and when retrieve the keys from the Enumeration,they are not in the original order!
    The following is my code:
    Hashtable ht = new Hashtable();
    ht.put("Name","Harry Bott");
    ht.put("Gender","Male");
    ht.put("Age","25");
    String[] Items = new String[ht.size()];
    Enumeration e = ht.keys();
    int i = 0;
    while(e.hasMoreElements()) {
    Items[i++] =(String)(e.nextElement());
    The Items contains the keys but they are not in the original order.
    Does anyone know how to get the keys from a Hashtable in the same order when they're put?
    Thank you!

    yeah, another solution is to stored keys on a Collection at the same time you put them on the HashMap with its values.
    Then when ur going to retrieve objects from the Map u iterate the Collection that has the ordered keys and use them.

  • Order of elements in Hashtable

    My code:
    Hashtable tabCtrl = new Hashtable();
    tabCtrl.put("jTextField01", jTextField01);
    tabCtrl.put("jTextField02", jTextField02);
    tabCtrl.put("jTextField03", jTextField03);
    tabCtrl.put("jTextField04", jTextField04);
    tabCtrl.put("jTextField05", jTextField05);
    tabCtrl.put("06", jTextField05);
    tabCtrl.put("07", jTextField05);
    tabCtrl.put("08", jTextField05);
    tabCtrl.put("09", jTextField05);
    tabCtrl.put("10", jTextField05);
    tabCtrl.put("11", jTextField05);
    Enumeration ex = tabCtrl.keys();
    while (ex.hasMoreElements()) {
    String alias = (String)ex.nextElement();
    System.out.println(alias);
    Output:
    jTextField05
    jTextField04
    jTextField03
    jTextField02
    jTextField01
    11
    09
    10
    08
    07
    06
    Why not so:
    11
    09
    10
    08
    07
    06
    jTextField05
    jTextField04
    jTextField03
    jTextField02
    jTextField01

    Hi,
    I tried a TreeMap to keep ordering of my elements but it doesn't work. Why ?
    import java.util.*;
    class Mapping {
      public static void main(String[] args) {
        TreeMap map = new TreeMap();
        map.put("Type of realm used", "0");
        map.put("Name of the file used", "1");
        map.put("The database's driver", "2");
        map.put("The database's URL", "3");
        map.put("The database's user", "4");          
        System.out.println("\nmap0>"+ map +"\n");
    }Here's the output :
    map0>{Name of the file used=1, The database's URL=3, The database's driver=2, The database's user=4, Type of realm used=0}
    Anyone knows how to do ?
    I'm using JDK1.3.x, so I can't use the class LinkedHashMap from JDK1.4.
    Thank you for your help.
    Yann P.

  • JTree from Hashtable: weird ordering

    Need some help on this:
    I am making a JTree from a Hashtable:
    myJTree = new JTree(myHashtable);The elements are put in the hashtable in the right order, but they come out in the GUI all wrong, can't seem to see any logic behind the order.
    The children are not supposed to be sorted alphabetically, but in the order I get from an XML file. They are put in the Hashtable one by one.
    Any ideas?

    They are not sorted by key or value. But they are put in the hashtable in a specific order, the same order as they are in a XML file. And I need it to be in a data structure I can use to create a JTree.
    I tried to put the items in a vector. The order was then correct. The problem is that I then loose info (<key, value>) from the hashtable. And I cant get more than one level in the tree from the JTree(vector) constructor.
    So what do I do?
    To make it more clear how my tree looks like:
    ___Root object _nr1 (object in xml)
    |
    |________Child (first subcomponent in xmll)
    |
    |________Child (second subcomponent in xmll)
    |
    |________Child(third subcomponent in xmll)
    |
    etc.
    Its as simple as that

  • How can I get the total "values" in a hashtable ?

    i know that i can get the total values in a hashtable by hash.elements() method. It returns an
    enumeration with all the values present in this hashtable. this is fine upto here.
    Now the preoblem is:
    According to what rule this enumeration will be returned. I mean..
    If i added in key A with value a,
    then key B with value b;
    then key C with value c;
    then key D with value d;
    (They all are objects of type String)
    now i call ... hash.elements(); Suppose it returns Enumeration enum;.
    Now in what order they all are present in this hashtable.
    Meaning is that if i move arond this enum in what sequence they all will be returned.
    option A ) In the same order as they were inserted in hashtable.
    option B ) According to LIFO;
    option C) There is no fix rules , simply it return all the elements and u cannot judge that the first element in enum was really the first element inserted in the hashtable and the second element of enum was really the second element inserted in the hashtable.
    What do u think..which option is correct ?
    Ny idea will highly appreciated.
    Thanks in advance.
    Sanjeev Dhiman

    hi, i am again..
    boss ! this is not true..u just change the order and or change the keys and something like ...
    "Sanjeev", "hello"
    "Dhiman", "hi"
    "Technosys" ,"Services"
    u will find that its not LIFO..really i was thinking before coding my project that option A is correct and with knowledge i wrote 3 - 4 classes but when i run the programm its starts throwing errors.
    so, i posted this question. I think "apppu" is right.
    I think , firstly hash is calculated for each value and that value is returned which can be received in a fastest way and hence not necessarily in LIFO and FIFO..
    Thanks to u also as u gave ur precious time for me.
    Once again.
    Thank you very much.
    Sanjeev Dhiman

  • Sort order in list wrong: in CAML and in view

    Hello,
    When I order my list with document sets by ID, the order is wrong. It is wrong in the list and with caml.
    This is my view (I just set the sort on the ID column):
    The first 4 objects are created by the Client Object Model; the last 4 are created by a SharePoint webpart that I developped myself...
    My code for creating document sets in COM is something like this:
    ListItemCreationInformation newItemInfo = new ListItemCreationInformation
    UnderlyingObjectType = FileSystemObjectType.Folder,
    LeafName = _strLeafname // = date in format YYYYMMDDhhmmss
    ListItem newListItem = myList.AddItem(newItemInfo);
    newListItem["ContentTypeId"] = targetDocumentSetContentType.Id.ToString();
    newListItem["Title"] = title;
    newListItem.Update();
    clientContext.Load(myList);
    clientContext.ExecuteQuery();
    The code in the webpart is this:
    SPContentType docsetCt = myLst.ContentTypes[p.GetFromResourcefile("xxxxxxxxxxxxxx")];
    Hashtable properties = new Hashtable
    {"DocumentSetDescription", ""},
    {"Title", txtTitle.Text}
    SPFolder parentFolder = myLst.RootFolder;
    int newId = GetLastId(myLst) + 1;
    DocumentSet ds = DocumentSet.Create(parentFolder, newId.ToString(CultureInfo.InvariantCulture), docsetCt.Id, properties, true);
    ds.Item["Title"] = title
    ds.Item.Update();
    why is the sort order wrong?
    if i do this query in the U2U Caml builder, the order is also wrong
    <OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy>
    if i order by "created", the order is also wrong....
    i don't get it....

    Document Sets are great tools for grouping multiple documents together. However, if every set has exactly one document, it would be better to just upload the file and not place it within a Document Set:
    Uploading documents using object model - http://msdn.microsoft.com/en-us/library/office/ms454491(v=office.14).aspx
    Uploading documents using web services -
    http://cecildt.blogspot.com/2010/10/upload-documents-to-sharepoint-2010.html
    If you have requirements to use Document Sets, keep in mind that this adds a layer of complexity beyond a simple Document Library. Behind the scenes, each Document Set is treated as a separate folder, and although can you query items within it, there might
    be extra steps for getting the sort order to ignore the folder structure. Can you try setting the Scope to be "Recursive" and also specify that you are looking only for files and not folders:
    <Eq><FieldRef Name='FSObjType'/><Value Type='Lookup'>1</Value></Eq></Where>
    Dimitri Ayrapetov (MCSE: SharePoint)

  • "Preview and Print " report extension in Order Management

    Looking for help on how to add extra information to this report.. I did setup the profile to implement the how to implement PrintExtensionObject interface with method getPrintExtensionXMLFragment.... and created the class file and compiled on Java_top. ( Am very new to java)
    -- enabled the logs
    -selected an order in OM and via action button (preview and print)
    --Shows error message "An error occured during the PDF document generation. Please contact your system Administrator."
    As per the fnd logs table (SELECT * FROM fnd_log_messages WHERE message_text LIKE '%PrintAM:writeBusinessDoc%';)
    shows the following ..
    PrintAM:writeBusinessDoc: Checking for Customer Extension Class
    PrintAM:writeBusinessDoc: Custom Extension Class Found
    PrintAM:writeBusinessDoc:Successfully instantiated the Custom Extension Class
    PrintAM:writeBusinessDoc: Retrieving Custom Extension XML failed
    So I am sure that the issue is on the class which I made.. but not sure what is the cause (Again as mentioned I am new to java) and can anyone help me on this..
    ( I did check the PrintAMImpl.java which calls this profile (Custom class) and can see the above message.
    (Oracle PrintAMImp.java related codes are this
    s29 = ((OADBTransaction)getDBTransaction()).getProfile("ONT_PRINT_CUSTOMER_EXTN_OBJECT");
    if(s29 != null || s29 == "")
    if(flag3)
    logfile.writeln("PrintAM:writeBusinessDoc: Custom Extension Class Found", 1);
    logfile.writeln("PrintAM:writeBusinessDoc: Instantiating the Custom extension class", 1);
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc: Custom Extension Class Found", 1);
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc: Instantiating the Custom extension class", 1);
    PrintExtensionObject printextensionobject = (PrintExtensionObject)Class.forName(s29).newInstance();
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc:Successfully instantiated the Custom Extension Class", 1);
    if(flag3)
    logfile.writeln("PrintAM:writeBusinessDoc: Successfully instantiated the Custom Extension Class", 1);
    byte abyte0[] = printextensionobject.getPrintExtensionXMLFragment(s, s1).toByteArray();
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc:Getting the data from the user impl class", 1);
    if(flag3)
    logfile.writeln("PrintAM:writeBusinessDoc: Getting the data from the user impl class", 1);
    bytearrayoutputstream.write(abyte0);
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc:Writing the data to the main xml", 1);
    if(flag3)
    logfile.writeln("PrintAM:writeBusinessDoc: Writing the data to the main xml", 1);
    } else
    if(flag3)
    logfile.writeln("PrintAM:writeBusinessDoc: No Custom Extension Class Found", 1);
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc: No Custom Extension Class Found", 1);
    catch(Exception exception1)
    if(flag2)
    logfile.writeln((new StringBuilder()).append("PrintAM:writeBusinessDoc: Retrieving Custom Extension XML failed for ").append(s29).append(" with Exception \n").append(exception1.toString()).toString(), 1);
    if(flag6)
    oadbtransaction.writeDiagnostics(s6, "PrintAM:writeBusinessDoc: Retrieving Custom Extension XML failed", 1);
    **********************THIS IS CUSTOM CLASS I WAS TRYING TO DO ********************************(not a java person)
    package oracle.apps.ont.print.server;
    import com.sun.java.util.collections.HashMap;
    import java.io.*;
    import java.sql.SQLException;
    import java.util.Hashtable;
    import java.util.Properties;
    import oracle.apps.fnd.common.AppsContext;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.common.EnvironmentStore;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.cp.request.CpContext;
    import oracle.apps.fnd.cp.request.LogFile;
    import oracle.apps.fnd.cp.request.OutFile;
    import oracle.apps.fnd.cp.request.JavaConcurrentProgram;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAFwkConstants;
    import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
    import oracle.apps.fnd.framework.server.OADBTransaction;
    import oracle.apps.fnd.framework.server.OADBTransactionImpl;
    import oracle.apps.fnd.framework.*;
    import oracle.apps.okc.printing.server.ContractTermsXMLGenerator;
    import oracle.apps.okc.util.server.TermsConstants;
    import oracle.apps.okc.util.server.TermsUtil;
    import oracle.apps.ont.print.blanket.server.HeaderVOImpl;
    import oracle.apps.ont.print.blanket.server.HeaderVORowImpl;
    import oracle.apps.ont.print.blanket.server.LinesVOImpl;
    import oracle.apps.ont.print.order.server.EndCustomerVOImpl;
    import oracle.apps.ont.print.server.PrintExtensionObject;
    import oracle.apps.qp.print.blanket.server.ModAtrbsVOImpl;
    import oracle.apps.qp.print.blanket.server.ModHdrVOImpl;
    import oracle.apps.qp.print.blanket.server.ModLinesVOImpl;
    import oracle.apps.qp.print.blanket.server.ModPrBrkVOImpl;
    import oracle.apps.qp.print.blanket.server.PrlAtrbsVOImpl;
    import oracle.apps.qp.print.blanket.server.PrlHdrVOImpl;
    import oracle.apps.qp.print.blanket.server.PrlLinesVOImpl;
    import oracle.apps.qp.print.blanket.server.PrlPrBrkVOImpl;
    import oracle.apps.xdo.XDOException;
    import oracle.apps.xdo.oa.schema.server.Template;
    import oracle.apps.xdo.oa.schema.server.TemplateHelper;
    import oracle.apps.xdo.template.FOProcessor;
    import oracle.apps.xdo.template.RTFProcessor;
    import oracle.jbo.RowIterator;
    import oracle.jbo.RowSet;
    import oracle.jbo.XMLInterface;
    import oracle.jbo.domain.BaseLobDomain;
    import oracle.jbo.domain.BlobDomain;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.ApplicationModuleImpl;
    import oracle.jbo.server.DBTransaction;
    import oracle.jbo.server.ViewLinkImpl;
    import oracle.jdbc.OracleTypes;
    import oracle.jdbc.driver.OracleCallableStatement;
    import oracle.jdbc.driver.OraclePreparedStatement;
    import oracle.jdbc.driver.OracleResultSet;
    import oracle.jdbc.driver.OracleConnection;
    import oracle.xml.parser.v2.XMLNode;
    import java.lang.*;
    import java.sql.*;
    public class KciSoPrintClass implements PrintExtensionObject
    KciSoPrintClass()
    public ByteArrayOutputStream getPrintExtensionXMLFragment(String s, String s1)
    ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
    String s2 = null;
    String s3 = null;
    String s40 ="KciCustomClass";
    byte abyte0[] = null;
    byte abyte1[] = null;
    OAApplicationModuleImpl a1=new OAApplicationModuleImpl();
    OADBTransaction dbtransaction = (OADBTransaction)a1.getTransaction();
    dbtransaction.writeDiagnostics(s40, "Sujo John"+ s,1);
    try
    //OAApplicationModuleImpl a1=new OAApplicationModuleImpl();
    //OADBTransaction dbtransaction = (OADBTransaction)a1.getTransaction();
    Statement stmt = dbtransaction.createStatement(1);
    System.out.println("Testline1");
    String str = "select attribute7, attribute8 from oe_order_headers_all where header_id = " + s + " and 'O' = " + s1;
    System.out.println("Testline2");
    ResultSet resultset = stmt.executeQuery(str);
    dbtransaction.writeDiagnostics(s40, "nessDoc method"+ s,1);
    dbtransaction.writeDiagnostics(s40, "START:Prinoc method"+ s1,1);
    //OAApplicationModule am = pageContext.getApplicationModule(webBean);
    //OracleConnection conn = (OracleConnection)dbtransaction.getJdbcConnection();
    //OracleConnection conn = (OracleConnection)dbtransaction.getLocalJDBCConnection();
    //Connection conn = (Connection)am.getOADBTransaction();
    //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    //Connection conn = new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    //Class.forName("oracle.jdbc.driver.OracleDriver");
    System.out.println("Sujo");
    //Connection conn = DriverManager.getConnection("jdbc:oracle:thin:APPS/[email protected]:1533");
    //System.out.println("Sujo2");
    //String s41 = "select shipping_instructions,attribute8 from OE_ORDER_HEADERS_ALL where header_id = " + s + " and 'O' = " + s1;
    //System.out.println("Sujo3");
    //Statement statement = conn.createStatement();
    //dbtransaction.createStatement();
    //ResultSet resultset = statement.executeQuery(s41);
    if(resultset.next())
    s2 = resultset.getString("attribute7");
    s3 = resultset.getString("attribute8");
    catch(SQLException sqlexception)
    sqlexception.printStackTrace();
    catch (Exception e)
    System.err.println("Got an exception! ");
    System.err.println(e.getMessage());
    try
    //s2 = "abc";
    if(s2 != null)
    abyte0 = s2.getBytes("UTF-8");
    //s3 = "abc1";
    if(s3 != null)
    abyte1 = s3.getBytes("UTF-8");
    bytearrayoutputstream.write("<attribute7>".getBytes("UTF-8"));
    bytearrayoutputstream.write(abyte0);
    bytearrayoutputstream.write("</attribute7>".getBytes("UTF-8"));
    bytearrayoutputstream.write("<Attribute8>".getBytes("UTF-8"));
    bytearrayoutputstream.write(abyte1);
    bytearrayoutputstream.write("</Attribute8>".getBytes("UTF-8"));
    catch(IOException ioexception)
    ioexception.printStackTrace();
    // dbtransaction.writeDiagnostics(s40, "START:PrintAM:writeBusinessDoc method"+ abyte0[0]);
    // dbtransaction.writeDiagnostics(s40, "START:PrintAM:writeBusinessDoc method"+ abyte1);
    return bytearrayoutputstream;
    Any help will be appreciated

    There is a custom extension class available for this "Print and Priview" report. You can implement that and return the SQL Query in the class so that it gets executed and adds the custom attribute information at the end of XML file and you can modify the layout to add the information. The extended java class can return "select statement" or XML data. If it returns select statement code executes the query and adds the xml data at the end or returned XML data will be added. Look for Profile "OM: Printed Document Extension Class Name"

  • JAXB Hashtable instead of List

    Hi,
    I'm new using JAXB, I apologize if it is a to basic question.
    I've already searched for a solution for the problem described below on google, and also on this forum with no success.
    I appreciate if someone could help me.
    First question:
    1)What is the best approach to develop with JAXB??Should I create the java classes first, and then generate the XSD using the "schemagen" tool??or should I create the XSD file first, and then use the tool "xjc" to generate the java classes?
    2)One of my java classes have an Hashtable attribute like this example:
    Public class ems{
    private Hashtable mapping;
    }However, when I run the "schemagen" tool, then it generates the XSD like the code below:
      <xs:complexType name="ems">
        <xs:sequence>
          <xs:element name="mapping" type="xs:anyType" nillable="true" maxOccurs="unbounded" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>The issue is that I don't know how to unmarshal/ marshal collections attributes that are HashTable (or any other collection different from List).
    Please, Does somebody know what should I do in order to solve this issue?
    thanks in advance,
    Roger

    It is still showing a list.  So yes I can click artist or album and it will show that album or artist in alpha or reverse alpha.  And this is of course if my id3 tag has an album which some do not so when I drag a folder of music without specific id3 tags they can simply get lost in the list.
    Where as I figured I could drag each folder and it would keep that folder so I could select each folder as I had them organized in my music folders to begin with.
    I have a lot of music and not all of it has id3 tags that will properly show up even when I click the category buttons.
    What I am trying to do is find a method in which I can have folders rather than a list view for each folder I upload/download to my iPad.
    Coming from a PC this functionality seems fairly simple but I am not able to find it inside iTunes.

  • Hashtable containsKey() problem when String key is read from a file - HELP

    I'll try to be brief:
    I open a .txt file of Unicode encoding (not ANSI) in order to fetch some info.
    After I manipulate each line with splits etc I use a String as a key to a Hashtable.
    The problem is that later inside my code, I try to check wether this key (and hence its corresponded value) exists and I get a false value from the containsKey() method.
    and here's the code (I have embedded some comments //-type that address to this thread):
    FileInputStream fis = new FileInputStream(initFilename);
    InputStreamReader isr = new InputStreamReader(fis, "UTF-16");
    BufferedReader br = new BufferedReader(isr);
    lineText = loadSubiPhraseFilter(br);
    //In the loadSubiPhraseFilter method
    //parsing an input like this:
    //&#948;&#972;&#958;&#945; &#964;&#974; &#920;&#949;&#974;,1:1,2:2
    //Yeah, I know, its all greek to you ;)
    //Thus we first split the line with ','
    //we split the first token with ' ' and each one of the N words,
    //serves as an index in a N-dimension hashtable
    //This is achieved implicitly by adding another hashtable as a value to a String key etc...
    //When all words are added, the hashtable which contains the last word is used
    //to put another hashtable whose only key is the String "Index"
    //which points to the rest of the data. The thing is, I never get that far...
    //I dont get to even get a positive containsKey() when giving an inserted key at a later time
    //here's the loading procedure
    while((lineText = br.readLine()) != null && (lineText.charAt(0) != '#'))
         String [] info = lineText.split("[,]");
         /*Load subi indeces in a vector*/
         Integer [][] subiIndex = new Integer [info.length-1][2];// = new Vector<Integer>();
         for(int i = 1; i < info.length; i += 1)
              //load subiIndex here...
         /*Then fetch phrase to be modified and load its 'n' words in an n-dimesion hash which will utterly point to the subi indeces*/
         /*Starting from the last word, we  put the index vector*/
         String [] word = info[0].split("[ ']+");
         Hashtable<String, Object> nextWord = new Hashtable<String, Object>();
         nextWord.put("Index", subiIndex);
         /*Then we create a chain of hash dimensions corresponding to phrase words*/
         for(int i = word.length-1; i >= 0; i -=1)
              Hashtable<String, Object> prevWord = new Hashtable<String, Object>();
              //Yeah, I even tried the .trim() method...
              prevWord.put(word.trim(), nextWord);
              nextWord = prevWord;
              System.out.print(word[i] + "<-");
         /*We update the hash head and also add the first word with its first letter capitalized as key pointing to the same next key in hash dimension chain*/
         subiPhraseFilter = nextWord;
         subiPhraseFilter.put((capitalMap.get(word[0].charAt(0))+word[0].substring(1)).trim(), subiPhraseFilter.get(word[0]));
         //The following debbuging print outs work just fine. Its only just later when I cant get a containsKey()...
         System.out.println("|| "+subiPhraseFilter);
         System.out.println("subiPhraseFilter.containsKey("+word[0]+"): "+subiPhraseFilter.containsKey(word[0]));
    //Then the following code is executed
    Integer [][] subiPhraseIndeces(String word1, String word2, String word3)
         String [] tmp = {word1, word2, word3};
         Hashtable<String, Object> dimension = subiPhraseFilter;
         //The following debbuging print out does NOT return true
         //even when I explicitly give a String key which I know it is inserted
         System.out.println("subiPhraseFilter.containsKey(" + tmp[0] + "): " + subiPhraseFilter.containsKey("&#949;&#957;&#955;&#972;&#947;&#969;".trim()));
         for(int i = 0; (i < tmp.length) && (tmp[i] != null) && dimension.containsKey(tmp[i]); i += 1)
              //This is NEVER executed...
              System.out.println(i + ": dimension.containsKey(" + tmp[i].trim() + ")");
              dimension = (Hashtable<String, Object>)dimension.get(tmp[i].trim());
              return (Integer [][])dimension.get("Index");
    Whats most irritating is that this also happens arbitrarily in another place of my code where I load again info by using each line as a key to another Hashtable and, the containsKey() method returns true to all but one (!) line-words, even if I change its position in the file. I won't put the latter code here because its just very simple. (in case I wasnt clear I read a section of a file that looks like
    wordA
    wordB
    wordC
    wordN
    each wordX is put as a key to a Boolean value and yet, containsKey(wordA) returns false even if i change the input file to
    wordB
    wordA
    wordC
    wordN
    isn't that just peculiar?
    A significant note in this problem is that I do not read english characters, rather than greek (hence the unicode filetype) which I put as keys to the hashtable; later I try to get corresponded values by fetching text (which I also manipulate) from a JTextfield, as key, and I'm afraid that maybe something is happening there.
    However the code sample I added above didnt work even when I added an english word in the file and explicitly asked wether it is contained as a key...
    Maybe I am doing something I really can't see right now...
    Help would be appreciated                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    BalusC: "I would also not be surprised if that file is after all actually just UTF-8"
    No, it's not cause I explictly saved the .txt file as Unicode in wordpad and NOT as UTF-8. By the way notepad has ANSI as its default save-type.
    However I converted my input files to UTF-8 and read them using the "UTF-8" String flag in the constructor of the reader I was using. All the same.
    EDIT: Not to metion, the UTF-8 file needed an empty line at the beggining or my parsing would skip the first line, messing everything up!
    Just for the sake of it I will show the output of my program (redirected to a file cause cmd.exe does not support greek letters, or I didnt find a way to make it so):
    (This is the output when I load from the UTF-8 file the word "&#949;&#957;&#955;&#972;&#947;&#969;" in my has as a key (pointing to a Boolean i think - it doesnt really matter). What I print is the key of each dimension of the hash -here there's only one dimension- and then I print the hash reference, i.e like a toString() representation. The result shows that the Hashtable contains at key "&#949;&#957;&#955;&#972;&#947;&#969;" a value which is another Hashtable which contains the key "Index" pointing to something you shouldnt care. The hash head also contains the key "&#917;&#957;&#955;&#972;&#947;&#969;", which is actually the same as before only to have its first letter capitalized, which in turn points to a hash with one key etc...)
    &#949;&#957;&#955;&#972;&#947;&#969;<-|| {&#949;&#957;&#955;&#972;&#947;&#969;={Index=[[Ljava.lang.Integer;@360be0}, &#917;&#957;&#955;&#972;&#947;&#969;={Index=[[Ljava.lang.Integer;@360be0}}
    subiPhraseFilter.containsKey(&#949;&#957;&#955;&#972;&#947;&#969;): true
    (And later on I get a string from a JTextField I tokenize it and here's what I get when I reach the same word:)
    (Don't mind "Checking: ..." its 'cause I check a window of three words in order to reach up to a 3-dimension hash key. Yet I dont even get the first key!)
    Current token: '&#949;&#957;&#955;&#972;&#947;&#969;'
    Checking: &#949;&#957;&#955;&#972;&#947;&#969;, null, null
    subiPhraseFilter.containsKey(&#949;&#957;&#955;&#972;&#947;&#969;): false
    Now isn't that making one crazy?
    Any other ideas?
    Thnak you in advance!
    P.S. In case that I haven't done something really stupid which is ommitted here and yet can't be tracked, I think the problem must be somewhere between the encoding of JTextField and the encoding I read...
    P.S.2 Excuse me for saying hash instead of Hashtable sometimes in the above text
    Edited by: M.M. on Sep 2, 2009 3:22 AM
    Edited by: M.M. on Sep 2, 2009 3:23 AM

  • Storing and Retriving from Hashtable

    I store countryCode and countryName in Hashtable, but how do i populate it back to my html listBox? And with sorting order?
    Hashtable codeHash = new Hashtable();
    if (codeHash != null) {
         codeHash.put("AR", "Argentina");
         codeHash.put("AM", "Armenia");
         codeHash.put("AW", "Aruba");
         codeHash.put("AU", "Australia");
         codeHash.put("AT", "Austria");
    }JSP :
    <select name="countryList">
         <option value="CountyCode"> CountryName </option>
    </select>

    Things I noticed that might be changed in this snippet:
    //declare Map codeHash = new HashTable(), so
    //there would be fewer changes if you ever needed it to change
    //(to TreeMap for example)
    Hashtable codeHash = new Hashtable();
    //Why do you check for null? You just created the bloody thing
    //like, two lines up..
    if (codeHash != null) {
         codeHash.put("AR", "Argentina");
         codeHash.put("AM", "Armenia");
         codeHash.put("AW", "Aruba");
         codeHash.put("AU", "Australia");
         codeHash.put("AT", "Austria");

  • Strange memory behaviour using the System.Collections.Hashtable in object reference

    Dear all,
    Recently I came across a strange memory behaviour when comparing the system.collections.hashtable versus de scripting.dictionary object and thought to analyse it a bit in depth. First I thought I incorrectly destroyed references to the class and
    child classes but even when properly destroying them (and even implemented a "SafeObject" with deallocate method) I kept seeing strange memory behaviour.
    Hope this will help others when facing strange memory usage BUT I dont have a solution to the problem (yet) suggestions are welcome.
    Setting:
    I have a parent class that stores data in child classes through the use of a dictionary object. I want to store many differenct items in memory and fetching or alteging them must be as efficient as possible using the dictionary ability of retrieving key
    / value pairs. When the child class (which I store in the dictionary as value) contains another dictionary object memory handeling is as expected where all used memory is release upon the objects leaving scope (or destroyed via code). When I use a system.collection.hashtable
    no memory is released at all though apears to have some internal flag that marks it as useable for another system.collection.hashtable object.
    I created a small test snippet of code to test this behaviour with (running excel from the Office Plus 2010 version) The snippet contains a module to instantiate the parent class and child classes that will contain the data. One sub will test the Hash functionality
    and the other sub will test the dictionary functionality.
    Module1
    Option Explicit
    Sub testHash()
    Dim Parent As parent_class
    Dim d_Count As Double
    'Instantiate parent class
    Set Parent = New parent_class
    'Create a child using the hash collection object
    Parent.AddChildHash "TEST_hash"
    Dim d_CycleCount As Double
    d_CycleCount = 50000
    'Add dummy data records to the child container with x amount of data For d_Count = 0 To d_CycleCount
    Parent.ChildContainer("TEST_hash").InsertDataToHash CStr(d_Count), "dummy data"
    Next
    'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
    'According to documentation and debug messages not really required!
    Set Parent.ChildContainer("TEST_hash") = Nothing
    'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
    Set Parent = Nothing
    End Sub
    Sub testDict()
    Dim Parent As parent_class
    Dim d_Count As Double
    'Instantiate parent class
    Set Parent = New parent_class
    'Create a child using the dictionary object
    Parent.AddChildDict "TEST_dict"
    Dim d_CycleCount As Double
    d_CycleCount = 50000
    'Blow up the memory with x amount of records
    Dim s_SheetCycleCount As String
    s_SheetCycleCount = ThisWorkbook.Worksheets("ButtonSheet").Range("K2").Value
    If IsNumeric(s_SheetCycleCount) Then d_CycleCount = CDbl(s_SheetCycleCount)
    'Add dummy data records to the child container
    For d_Count = 0 To d_CycleCount
    Parent.ChildContainer("TEST_dict").InsertDataToDict CStr(d_Count), "dummy data"
    Next
    'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
    'According to documentation and debug messages not really required!
    Set Parent.ChildContainer("TEST_dict") = Nothing
    'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
    Set Parent = Nothing
    End Sub
    parent_class:
    Option Explicit
    Public ChildContainer As Object
    Private Counter As Double
    Private Sub Class_Initialize()
    Debug.Print "Parent initialized"
    Set ChildContainer = CreateObject("Scripting.dictionary")
    End Sub
    Public Sub AddChildHash(ByRef ChildKey As String)
    If Not ChildContainer.Exists(ChildKey) Then
    Dim TmpChild As child_class_hashtable
    Set TmpChild = New child_class_hashtable
    ChildContainer.Add ChildKey, TmpChild
    Counter = Counter + 1
    Set TmpChild = Nothing
    End If
    End Sub
    Public Sub AddChildDict(ByRef ChildKey As String)
    If Not ChildContainer.Exists(ChildKey) Then
    Dim TmpChild As child_class_dict
    Set TmpChild = New child_class_dict
    ChildContainer.Add ChildKey, TmpChild
    Counter = Counter + 1
    Set TmpChild = Nothing
    End If
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Parent being killed, first kill all childs (if there are any left!) - muahaha"
    Set ChildContainer = Nothing
    Debug.Print "Parent killed"
    End Sub
    child_class_dict
    Option Explicit
    Public MemmoryLeakObject As Object
    Private Sub Class_Initialize()
    Debug.Print "Child using Scripting.Dictionary initialized"
    Set MemmoryLeakObject = CreateObject("Scripting.Dictionary")
    End Sub
    Public Sub InsertDataToDict(ByRef KeyValue As String, ByRef DataValue As String)
    If Not MemmoryLeakObject.Exists(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Child using Scripting.Dictionary terminated"
    Set MemmoryLeakObject = Nothing
    End Sub
    child_class_hash:
    Option Explicit
    Public MemmoryLeakObject As Object
    Private Sub Class_Initialize()
    Debug.Print "Child using System.Collections.Hashtable initialized"
    Set MemmoryLeakObject = CreateObject("System.Collections.Hashtable")
    End Sub
    Public Sub InsertDataToHash(ByRef KeyValue As String, ByRef DataValue As String)
    If Not MemmoryLeakObject.ContainsKey(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Child using System.Collections.Hashtable terminated"
    Set MemmoryLeakObject = Nothing
    End Sub
    Statistics:
    TEST: (Chronologically ordered)
    1.1 Excel starting memory: 25.324 kb approximately
    Max memory usage after hash (500.000 records) 84.352 kb approximately
    Memory released: 0 %
    1.2 max memory usages after 2nd consequtive hash usage 81.616 kb approximately
    "observation:
    - memory is released then reused
    - less max memory consumed"
    1.3 max memory usages after 3rd consequtive hash usage 80.000 kb approximately
    "observation:
    - memory is released then reused
    - less max memory consumed"
    1.4 Running the dictionary procedure after any of the hash runs will start from the already allocated memory
    In this case from 80000 kb to 147000 kb
    Close excel, free up memory and restart excel
    2.1 Excel starting memory: 25.324 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released: 91,9%
    2.2 Excel starting memory 2nd consequtive dict run: 27.552 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released: 99,4%
    2.3 Excel starting memory 3rd consequtive dict run: 27.712 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released:

    Hi Cor,
    Thank you for going through my post and took the time to reply :) Most apreciated. The issue I am facing is that the memory is not reallocated when using mixed object types and is not behaving the same. I not understand that .net versus the older methods
    use memory allocation differently and perhaps using the .net dictionary object (in stead of the scripting.dictionary) may lead to similar behaviour. {Curious to find that out -> put to the to do list of interesting thingies to explore}
    I agree that allocated memory is not a bad thing as the blocks are already assigned to the program and therefore should be reallocated with more performance. However the dictionary object versus hashtable perform almost identical (and sometimes even favor
    the dictionary object)
    The hashtable is clearly the winner when dealing with small sets of data.
    The issue arises when I am using the hash table in conjunction with another type, for example a dictionary, I see that the dictionary object's memory is stacked on top of the claimed memory space of the hashtable. It appears that .net memory allocation and
    reuse is for .net references only. :) (Or so it seems)
    In another example I got with the similar setup, I see that the total used memory is never released or reclaimed and leakage of around 20% allocated memory remains to eventually crash the system with the out of memory message. (This is when another class
    calls the parent class that instantiates the child class but thats not the point of the question at hand)
    This leakage drove me to investigate and create the example of this post in the first place. For the solution with the class -> parent class -> child class memory leak I switched all to dictionaries and no leakage occurs anymore but nevertheless thought
    it may be good to share / ask if anyone else knows more :D (Never to old to learn something new)

  • If you are not using J2SE 1.4 - OrderedMap - (maintains order of insertion)

    Hi,
    If you are not using J2SE 1.4 and still want to maintain the order of insertion unlike HashMap or Hashtable(which doesn't allow)
    OrderedMap comes to resue!
    import java.util.ArrayList;
    import java.util.List;
    import java.util.TreeMap;
    public final class OrderedMap extends TreeMap {
         private List list= new ArrayList();
         public OrderedMap() {
         public Object put(Object key, Object value) {
              list.add(key);
              return super.put(key, value);
         public List getKeysList() {
              return list;
    };;Mail me how to use it!
    Bye
    tuniki
    [email protected]

    Hi, Dude!
    Probably you have to read the subject b4 posting something!
    (Re: If you are not using J2SE 1.4 ->OrderedMap ->(maintains order of insertion))
    Tuniki
    [email protected]

  • Hashtable vs Vector

    Hi there,
    I was just wondering if a Hashtable is more efficient than a Vector for holding small amounts of objects.
    The fuctionality that I require allows me to use either but Id like to use the most efficient if I can find out which that would be.
    Thanks,
    Nick

    Fiontan,
    You can't compare two things that are not comparable.My bad, the Comparable interface is a Java 2 construct also. You could still code your own binary search for the Vector however, using the knowledge that it only contains Strings, which you can manually compare.
    Or, if speed really isn't important, then you could use the existing contains (was this in 1.0?) or indexOf method to test if the string exists, and just go with the linear performance. In a list with 5 elements (Each equally likely), that's less than 3 comparisons on average, compared with more than 1 (hash + equals, at minimum) for a hashtable.
    The hashtable is a special structure used to keep
    objects that are unique and accessible through a
    unique hashcode, so the access can be make in O(1).A hashtable is an implementation of both the (mathematical) map and (mathematical) set construct. A map is a function that literally maps a value from one set onto another value from another (or the same) set. If a map simply maps a value onto itself, then that map is just an identity map on a set.
    This differs from a Vector, which is simply an ordered list of values. Such a list can be a backing for larger mathematical constructs (Indeed, a similar ordered list forms part of the backing for a hashtable). Since their purpose overlaps, there may well be cases where either is appropriate. In many such cases, there will be one which is 'obviously' more appropriate, but that's no reason to assume that in all cases it is either 'one or the other'.
    But, if you don't have any key on your objects, and
    you want to add the same object several times, and you
    want to have an sequential ordered access : use a
    Vector (or a similar structure) but not an HashTable.I'd change each of your 'and's to 'or's, since a hashtable will not fulfil any of those requirements - so any one of them will render a hashtable unusable. Note that in a set, an object forms its own key.
    Just to throw a spanner in the works, I suddenly recall that in Java 1.0, String's hashCode method was rather inefficient - it creates a poor hash, and it doesn't store the result of the calculation (Meaning it is recalculated for each call to hashCode). If your strings are large, the Vector may match or out-perform the HashTable!
    -Troy

  • Doesn't Sort data in Ascending order in Hash Table?

    Hello
    I am using JSP, Servlets. After quering in servlets, putting data in HashTable then set attribute in servlets, get attribute in JSP & retrieving data from HashTable in JSP & putting in select html element, data is not coming in ascending order in select drop down box. I need A,B,C,D but it is coming b,d,c,a. When I run query in DB, it shows in sequence but after putting in HashTable, it is not coming in sequence.
    How to make it ascending?
    Looking forward for an early reply.
    Thanks.

    Hi
    Something to do with TreeMap(TreeSet). I tried with TreeSet but it didn't work. Here is the code :
    In servlet :
    Connection lConnection = getConnection(pRequest);
    String lSQL = "";
    Statement lStatement;
    ResultSet lResultSet;
    Hashtable lLtypeHashtable = new Hashtable();
    lStatement = lConnection.createStatement();
    lSQL = "SELECT RCID,RCMEANING FROM REFERENCECODES WHERE RCDOMAIN = 'LOCATIONTYPE' AND RCROWSTATE > 0 order by RCMEANING";
    lResultSet = lStatement.executeQuery(lSQL);
    while(lResultSet.next())
    String lRcid = lResultSet.getString(1);
    String lRcmeaning = lResultSet.getString(2);
    lLtypeHashtable.put(lRcid.trim(),lRcmeaning.trim());
    if(lResultSet != null) lResultSet.close();
    if(lStatement != null) lStatement.close();
    pRequest.setAttribute("LtypeHashtable",lLtypeHashtable);
    //Below Query is executed when one data from select element is selected
    String lLType = DisplayUtilities.getString(pRequest.getParameter("LType"),true);
    //LType is name of select element in JSP.
    if (lLType != null)
    lSQL = lSQL + " AND " + lUpperCaseFunction + "(LOCATIONTYPE)" +
    " = " + DBUtilities.formatString(lLType.toUpperCase());
    pRequest.setAttribute("rLType",lLType+"");
    In JSp :
    <%
    Hashtable lLtypeHashtable = (Hashtable)request.getAttribute("LtypeHashtable");
    %>
    <TR>
    <TD width="15%"> <div align="left">
    <select name="LType" size="1" >
    <option Value="">< Select ></option>
    <%
    if(lLtypeHashtable != null)
    Enumeration enum = lLtypeHashtable.keys();
    while(enum.hasMoreElements())
    String key = (String)enum.nextElement();
    String value = (String)lLtypeHashtable.get(key);
    String flagBack = "";
    if(key.equals((String)request.getAttribute("rLType")))
    flagBack = "selected";
    %>
    <option Value="<%=key%>" <%=flagBack%>><%=value%></option>
    <%
    %>
    </select></div>
    </TD>
    </TR>
    How should I implement TreeSet?
    Looking forward for an early reply.
    Thanks.

  • Strange Problem with a Vector wraped inside a Hashtable

    Hi all ,
    I'm having a strange problem with a Vector wraped within a Hashtable inherited Class.
    My goal is to keep the order of the elements of the Hashtable so what I did was to extend Hashtable and wrap a Vector Inside of it.
    Here is what it looks like :
    package somepackage.util;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import java.util.Vector;
    public class OrderedHashTable extends Hashtable {
        private Vector index;
        /** Creates a new instance of OrderedHashTable */
        public OrderedHashTable() {      
            this.index = new Vector();
    //adds a key pair value to the HashTable and adds the key at the end of the index Vector
       public synchronized Object put(Object key,Object value){      
           index.addElement(key);
           Object obj = super.put(key,value);
           System.out.println("inside OrderedHashTable Put method index size = " + index.size());
           return obj;    
    public synchronized Object remove(Object key){
           int indx = index.indexOf(key);
           index.removeElementAt(indx);
           Object obj = super.remove(key);
           return obj;
    public synchronized Enumeration getOrderedEnumeration(){
           return index.elements();
    public synchronized Object getByIndex(int indexValue){
           Object obj1 = index.elementAt(indexValue);
           Object obj2 = super.get(obj1);      
           return obj2;
       public synchronized int indexOf(Object key){
        return index.indexOf(key);
        public synchronized int getIndexSize() {
            return index.size();
        }Everything seemed to work fine util I tried to add objects using a "for" loop such as this one :
    private synchronized void testOrderedHashTable(){
            OrderedHashTable test = new OrderedHashTable();
            for (int i = 1 ; i<15; i++){
                 System.out.println("adding Object No " + i);
                 String s = new String("string number = "+i);
                 test.put(new Integer(i),s);
                 System.out.println("-----------------------------------");
            //try to list the objects
            Enumeration e = test.getOrderedEnumeration();
            while (e.hasMoreElements()){
                Integer intObj = (Integer) e.nextElement();
                System.out.println("nextObject Number = "+ intObj);
        }Here is the console output :
    Generic/JSR179: adding Object No 1
    Generic/JSR179: inside OrderedHashTable Put method index size = 1
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 2
    Generic/JSR179: inside OrderedHashTable Put method index size = 2
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 3
    Generic/JSR179: inside OrderedHashTable Put method index size = 3
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 4
    Generic/JSR179: inside OrderedHashTable Put method index size = 4
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 5
    Generic/JSR179: inside OrderedHashTable Put method index size = 5
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 6
    Generic/JSR179: inside OrderedHashTable Put method index size = 6
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 7
    Generic/JSR179: inside OrderedHashTable Put method index size = 7
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 8
    Generic/JSR179: inside OrderedHashTable Put method index size = 8
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 9
    Generic/JSR179: inside OrderedHashTable Put method index size = 10
    Generic/JSR179: inside OrderedHashTable Put method index size = 10
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 10
    Generic/JSR179: inside OrderedHashTable Put method index size = 11
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 11
    Generic/JSR179: inside OrderedHashTable Put method index size = 12
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 12
    Generic/JSR179: inside OrderedHashTable Put method index size = 13
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 13
    Generic/JSR179: inside OrderedHashTable Put method index size = 14
    Generic/JSR179: -----------------------------------
    Generic/JSR179: adding Object No 14
    Generic/JSR179: inside OrderedHashTable Put method index size = 15
    Generic/JSR179: -----------------------------------
    Generic/JSR179: nextObject Number = 1
    Generic/JSR179: nextObject Number = 2
    Generic/JSR179: nextObject Number = 3
    Generic/JSR179: nextObject Number = 4
    Generic/JSR179: nextObject Number = 5
    Generic/JSR179: nextObject Number = 6
    Generic/JSR179: nextObject Number = 7
    Generic/JSR179: nextObject Number = 8
    Generic/JSR179: nextObject Number = 9
    Generic/JSR179: nextObject Number = 9
    Generic/JSR179: nextObject Number = 10
    Generic/JSR179: nextObject Number = 11
    Generic/JSR179: nextObject Number = 12
    Generic/JSR179: nextObject Number = 13
    Generic/JSR179: nextObject Number = 14
    You can notice that the output seems correct until the insertion of object 9.
    At this point the vector size should be 9 and the output says it is 10 elements long ...
    In the final check you can notice the 9 was inserted twice ...
    I think the problem has something to do with the automatic resizing of the vector but I'm not really sure. Mybe the resizing is done in a separate thread and the new insertion occurs before the vector is resized ... this is my best guess ...
    I also tested this in a pure J2SE evironment and I don't have the same strange behavior
    Can anybody tell me what I am doing wrong or how I could avoid this problem ?
    Thanks a lot !
    Cheers Alex

    Am i doing anything wrong?Uhm, yes. Read the API doc for addElement() and for addAll()

Maybe you are looking for

  • Importing Movie Clips from External Hard Drive

    Apologies if this has been answered elsewhere... I use my Sony SD card camcorder to save in AVCHD. I can import clips through iMovie to an external HD for editing etc. No problems. I want to know if rather than importing through iMovie, I can copy my

  • Two networks running (G&N), but now my N 'puters can't see my G

    So I set up my TC with an N-only network so that my faster computers could take advantage of the speed, and then used my old AEBS (attached via Ethernet) to set up a second G network for my phone and older Mini. The problem is that from the N compute

  • When I select an adjustment layer I do not automatically get a mask.

    Every adjustment layer tutorial that I watch suggests that when I select an adjustment layer I should get a mask with it.  I must have something set incorrect because in my case I must actually choose a mask manually. Any ideas?

  • Srvctl start service/stop throwing error ORA-01031: insufficient privileges

    Hi Gurus, When i try to start/stop the service getting below error.Please help me troubleshoot it. AIX-6.1 11.2.0.1 Plato1:/u01/app/11.2.0/grid/network/admin>srvctl start service -d maxcv PRCR-1079 : Failed to start resource ora.maxcv.maxcv.svc CRS-2

  • Why does the music app on my phone keep skipping songs?

    My music app on my iPhone 4S keeps skipping songs. It will show the album cover for a second then it will skip right to the next song and sometimes it will skip multiple songs. For example, once it skipped over an entire playlist and went to the scre