Memory cost of each type of Collection class

Hi, I wonder what is the memory cost of each type of Collection?
Suppose I want to keep a set of non-duplicate objects, HashSet removes duplicates automatically, but calculating hash is extra cost; instead i can use ArrayList and do a check "if contains, then adds" before adding an element. Which one is faster? And which costs less memory?
Thanks alot!

Use a Set, that's what it is there for.

Similar Messages

  • Define a requirement type and a class for each strategy

    Hello,
    Where can I define a requirement type and a class for each strategy?

    Hi
    Follow the following path
    SPRO -Production-Production Planning- Demand Management -Planned Independent Requirements - Requirements Types/Requirements Classes
    then Planning strategy - Define Strategy
    regards
    ramakant

  • How to exclude stock of a particular storage type from collective availabil

    How to exclude stock of a particular storage type from collective availability check in MDVP.

    you can set the storage location as 'Storage location stock excluded from MRP' value '1' in the field
    Sloc MRP indicator , in MRP view $ when you enter a storage location accessing the material master.
    Thsi is the only way to exclude the storage location, you have to do it per each material and also it is excluded from the MRP.
    With this option the stock is not considered in ATP.
    IF you need the storage location in the MRP, then you should consider the use of MRP Areas.
    With the MRP Areas you define which plants/storage locations belong to each MRP area and the ATP is performed for eah area with the stocks that exist in each of them.
    Please if the issue is solved set the thread  as answered and provide the points to the useful replies.
    thanks for your cooperation

  • 1067: Implicit coercion of a value of type void to an unrelated type mx.collections:ArrayCollection.

    Here is what I have going on.
    When a button in my app is clicked it will instantiate a new object called ButtonCommand, within that object I create a new instance of a ListVO called vo.  I then reference my model object that also has a separate instance of the same Value Object ListVO class, reference its properties and place it into the corresponding property of the new VO object. Here is the code.
    var vo:ListVO = new ListVO();
    vo.name = model.list.name;
    vo.id = model.list.id;
    vo.amount = model.list.amount;
    vo.category = model.list.category;
    Within that same ButtonCommand class, next line I am trying to add the new ListVO instance to an arrayCollection that is also referenced from my model object, so here is the code for that.
    model.listCollection = model.listCollection.addItem(vo);
    I get the following error : -1067: Implicit coercion of a value of type void to an unrelated type mx.collections:ArrayCollection.
    And here is my getter/setter for the model.listCollection.
    public function get listCollection ():ArrayCollection
          return _listCollection;
    public function set listCollection(value:ArrayCollection):void
          _listCollection = value;
    Any Ideas?

    I thought model.listCollection is an ArrayCollection?
    model.listCollection is an ArrayCollection as shown in the example model code a few posts back.
    public class Model extends Actor
         //- PROPERTIES - //
         //-- other properties are here
         private var _listCollection:ArrayCollection = new ArrayCollection();
         public function Model()
         super();
         //other getter and setters here
         public function get listCollection ():ArrayCollection
         return _listCollection;
         public function set listCollection(value:ArrayCollection):void
         _listCollection = value;
    I am finding this to be very odd, seems like a simple getter setter situation, but I feel I must be missing something. The code trace(model.listCollection); should trace out as an ArrayCollection and not the VO object I am trying to add to it. Also when i run the code model.listCollection.addItem(vo); it should add the vo to the array collection through my setter, but yet it seems to try to access my getter.
    I took Kglads advice and traced out  _listCollection within my getter before my return statement and it returns [object ListVO]..... confused for sure. I am going to change the _listCollection property in the model from private with a getter/setter to a public and see what happens.

  • Problem using different Map key types in one class

    I'm running Kodo 2.3.3. It seems I can only have one Map key types for all
    maps in a class. For example, if I have two maps in a class, their keys
    must be of the same type.
    Is there a plan to remove this limitation soon?
    Thanks,

    Abe White wrote:
    Kodo should generate a separate table for each Map. We have internal tests
    that use classes with Map fields using a lot of different key/value type
    combinations, so there shouldn\'t be a problem.It looks like two maps (keyValues and versions) are sharing the same
    table. Here is the table generated by schematool (db: Oracle 8.1.7):
    desc persistentmotiveresourcebean_x;
    Name Null? Type
    ID_JDOIDX VARCHAR2(255)
    JDOKEYX NUMBER
    KEYVALUESX VARCHAR2(255)
    VERSIONSX VARCHAR2(255)
    ==========================================================================
    Following is the simplified code I run:
    -----------internal.jdo--------------------------------------
    <?xml version=\"1.0\"?>
    <jdo>
    <package
    name=\"com.motive.services.resourceManagementService.internal\">
    <class name=\"PersistentMotiveResourceBean\"
    identity-type=\"application\"
    objectid-class=\"com.motive.model.PrimaryKey\">
    <field name=\"id\" primary-key=\"true\"/>
    <field name=\"versions\">
    <map key-type=\"java.lang.Float\"
    embedded-key=\"true\" value-type=\"java.lang.String\"
    embedded-value=\"true\"/>
    </field>
    <field name=\"keyValues\">
    <map key-type=\"java.lang.String\"
    embedded-key=\"true\" value-type=\"java.lang.String\"
    embedded-value=\"true\"/>
    </field>
    </class>
    </package>
    </jdo>
    Java source:
    -----------PersistentMotiveResourceBean.java---------
    package com.motive.services.resourceManagementService.internal;
    import java.util.HashMap;
    public class PersistentMotiveResourceBean
    private String id;
    private String name;
    private HashMap versions;
    private HashMap keyValues;
    public PersistentMotiveResourceBean()
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public HashMap getVersions() { return versions; }
    public void setVersions(HashMap versions) { this.versions = versions; }
    public HashMap getKeyValues() { return keyValues; }
    public void setKeyValues(HashMap keyValues) { this.keyValues =
    keyValues; }
    ----------------PrimaryKey.java-------------------------------------
    package com.motive.model;
    import java.io.Serializable;
    public class PrimaryKey implements Serializable
    public String id;
    public PrimaryKey ()
    public PrimaryKey (String id)
    this.id = id;
    public boolean equals (Object ob)
    if (this == ob) return true;
    if (!(ob instanceof PrimaryKey)) return false;
    PrimaryKey o = (PrimaryKey) ob;
    return (this.id == o.id);
    public int hashCode ()
    return id.hashCode();
    public String toString ()
    return id;

  • Sql memory usage increase each time win app runs

    Hi,
    Sql memory usage increases each time when win app runs. Why does it work like this? Is it normal ?
    I restart SQL Server 2012. Only my win app uses SQL server.
    First run of winapp.
    start memory usage : 211.800 KB
    close memory usage: 528.136 KB
    Second run of xaf app.
    start memory usage : 528.136 KB
    close memory usage: 996.844 KB
    Third run of xaf app
    start memory usage : 996.844 KB
    close memory usage: 997.640 KB
    Fourth run of xaf app
    start memory usage : 997.640 KB
    close memory usage: 1.104.864 KB

    Hi,
    Sql memory usage increases each time when win app runs. Why does it work like this? Is it normal ?
    Yes, it is perfectly normal for SQL Server to acquire and hold onto large amounts of memory indefinitely.  This memory improves performance by avoiding disk I/O, query plan compilation and costly memory management. 
    On a dedicated SQL Server you should usually let SQL Server dynamically manage memory.  It will release memory if it detects memory pressure.  But if you often run other applications on the server than need significant amounts of memory (e.g. IIS,
    application services), you may want to set max server memory as suggested.
    Dan Guzman, SQL Server MVP, http://www.dbdelta.com

  • CATS INTEGRATION WITH PP AND PM MODULE ( TO FIND ACTUAL MANPOWER COSTING THROUGH ACTIVITY TYPE)

    Hi Experts,
    We have a scenario like, Client wants to track the actual manpower costing through activity type ( Ex: How much hours an employee worked on a particular work center to produce an “X” product, So that his actual cost should be loaded on that product.
    We have employee ( 1. Staff 2. Worker 3. Contract labor employee and apprentice from third party roll and staff and worker we plan to go with negative time management and for contract labor and apprentice will go with through cats.
    Since we are not going to run the payroll for contract labor employee and apprentice, we just maintaining the employee data as a group ( Ex: Group A,B,C etc.. Each group consists 20 or 30 employees, According to system each group as one employee and according to us each group consists as 20 or 30 employee.
    The Activity type as well cost center will be created by Co module, the same will be assigned in info type 0315, but still i want more input from experts on the same, since i am new to cross application time sheet configuration, could any one help me out to find the actual manpower costing in a better way.
    Regards,
    Prem

    Hi Experts,
    Can any one please reply on the same.
    How to arrive the exact manpower costing through activity type ?..
    Regards,
    Prem

  • Passing select-options parameters type to the class

    Hi All,
    I am creating one class and I want to pass the select-options parameters directly to it like s_plant,s_mtart etc .
    So while specifying these as paramters what type I should give them?
    Rgds,
    Madhuri

    Whatever you finally decide upon, you must have a Data Dictionary definition. So either create one for each type (bukrs, vkorg, etc.) or use a general one like RSELOPTION. However with the general one you have to put extra code in the class to convert back from a CHAR 45 field to your special field.
    Anyway, using the Data Dictionary is fun! So go create as many new tables as you need. In the long term, the work you do in the Data Dictionary is never wasted and it may save you time in the future when you need that structure / table again for a different program.
    Creating these structures and tables is easy if you use shortcuts. For example in local definitions in your program you can code...
    data range1 type range of bukrs.
    or
    data wa_bukrs type bukrs.
    ranges range1 for wa_bukrs.
    either of these gives you the structure... no need to manually type sign, option, low, high...
    What about Global (data dictionary) definitions? yes, there are also shortcuts...
    start transaction SE11, enter range table name in the 'Data' field (e.g. ZMYRANGETAB), Hit Create, choose to create a Table Type... now you are on the blank new Maintain Table Type screen. enter a short text for your new table, then choose
    Edit->Define as ranges table type
    next enter your data element (e.g. BUKRS) under 'data element', hit Save and activate. You just created your range table without manually entering sign, option, low, high...
    But wait there's more... on the same screen you can now (after saving the range table) also enter a structure name such as ZMYRANGE in the field 'structured row type'. Hit Create and you are taken to the Maintain Structure screen where the sign, option, low and high are already populated... add a short description and save and activate... you just created a workarea for your range table.
    You just created a table type ZMYRANGETAB and a structure ZMYRANGE with minimal effort.

  • Sql type to Java class?

    I want to write a utility class to generate a java source file (bean) from out of the metadata of a database table. the metadata returns the column type as a java.sql.Types constant (int value). now, i want to map these int values to Java classes. (e.g. Types.INT => java.lang.Integer). Is there already such a method in the API or do i have to write my own switch ... case Types.INT ... result = Integer.class ... method?

    well, i wrote my own utility method to generate such beans:
         * Convert SQL type code to corresponding Java class.
         * @param sqlType One of java.sql.Types.xxx.
         * @return Class that corresponds to the given type.
        public static Class toClass(int sqlType) {
            Class result = null;
            switch (sqlType) {
            case Types.BIGINT :
            case Types.INTEGER :
            case Types.SMALLINT :
            case Types.TINYINT :
                result = Integer.class;
                break;
            case Types.BIT :
            case Types.BOOLEAN :
                result = Boolean.class;
                break;
            case Types.CHAR :
                result = Character.class;
                break;
            case Types.DATE :
            case Types.TIMESTAMP :
                result = java.util.Date.class;
                break;
            case Types.DECIMAL :
            case Types.DOUBLE :
            case Types.FLOAT :
                result = BigDecimal.class;
                break;
            case Types.NULL :
                result = null;
                break;
            case Types.LONGVARCHAR :
            case Types.VARCHAR :
            default :
                result = String.class;
                break;
            return result;
        }//toClass()
         * Create a Java bean (source file) to map a database table. The class name is the table name, the bean
         * properties are the table columns. Each column will result in a property with a corresponding set() and
         * get() method.
         * @param connection Database connection to load table from.
         * @param schema Schema to get tables for.
         * @param tableName Name of table to create the bean for.
         * @param className Name of Java class to create.
         * @param fileName Name of Java source file to create.
         * @throws SQLException, IOException
        public static void createTableBean(Connection connection, String schema, String tableName, String className, String fileName)
                throws SQLException, IOException {
            if (connection != null && tableName != null && fileName != null) {
                //read table columns:
                DatabaseMetaData dmd = connection.getMetaData();
                ResultSet resultSet = dmd.getColumns(null, "%", tableName, null);
                Properties props = new Properties();
                if (resultSet != null) {
                    while (resultSet.next()) { //for each table
                        String name = resultSet.getString("COLUMN_NAME");
                        int type = resultSet.getInt("DATA_TYPE");
                        props.setProperty(name, ""+type);
                    }//next table
                }//else: resultSet unavailable
                //create source file:
                File file = new File(fileName);
                StringBuffer sb = new StringBuffer();
                sb.append("/* $Header:$ */\n");
                sb.append("package TODO;\n\n");
                sb.append("/**\n");
                sb.append(" * Container class to store data of one record (row) of table '"+tableName+"'.\n");
                sb.append(" *\n");
                sb.append(" * @version $Revision:$ ($Date:$)\n");
                sb.append(" * @author $Author:$\n");
                sb.append(" */\n");
                sb.append("public class ");
                sb.append(className);
                sb.append(" {\n\n");
                Enumeration enum = props.keys();
                StringBuffer sb2 = new StringBuffer(); //methods
                StringBuffer sb3 = new StringBuffer(); //toString()
                while (enum.hasMoreElements()) {
                    String columnName = (String) enum.nextElement();
                    //change first character of column name to lower case:
                    String fieldName = columnName.substring(0, 1).toLowerCase() + columnName.substring(1);
                    String stype = props.getProperty(columnName, ""+Types.VARCHAR);
                    int type = (new Integer(stype)).intValue();
                    Class javaClass = toClass(type);
                    String typeName = "String"; //default
                    if (javaClass != null) {
                        String javaClassName = javaClass.getName();
                        int lastDot = javaClassName.lastIndexOf('.');
                        if (lastDot >= 0) {
                            typeName = javaClassName.substring(lastDot + 1);
                    //field:
                    sb.append("    /** ");
                    sb.append(columnName);
                    sb.append(" */\n");
                    sb.append("    private ");
                    sb.append(typeName);
                    sb.append(" ");
                    sb.append(fieldName);
                    sb.append(" = null;\n");
                    //toString() method:
                    sb3.append("        sb.append(\",");
                    sb3.append(fieldName);
                    sb3.append("=\");\n");
                    sb3.append("        sb.append(");
                    sb3.append(fieldName);
                    sb3.append(");\n");
                    //set method:
                    sb2.append("    /**\n");
                    sb2.append("     * Set ");
                    sb2.append(columnName);
                    sb2.append(".\n     *\n     * @param value ");
                    sb2.append(columnName);
                    sb2.append(" to set.\n");
                    sb2.append("     */\n");
                    sb2.append("    public void set");
                    sb2.append(columnName);
                    sb2.append("(");
                    sb2.append(typeName);
                    sb2.append(" value) {\n        ");
                    sb2.append(fieldName);
                    sb2.append(" = value;\n    }\n\n");
                    //get method:
                    sb2.append("    /**\n");
                    sb2.append("     * Get ");
                    sb2.append(columnName);
                    sb2.append(".\n     *\n     * @return ");
                    sb2.append(columnName);
                    sb2.append(".\n     */\n");
                    sb2.append("    public ");
                    sb2.append(typeName);
                    sb2.append(" get");
                    sb2.append(columnName);
                    sb2.append("() {\n");
                    sb2.append("        return ");
                    sb2.append(fieldName);
                    sb2.append(";\n    }\n\n");
                }//next column
                sb.append("\n\n");
                sb.append(sb2.toString()); //methods
                //overwrite toString() method:
                sb.append("    /**\n");
                sb.append("     * Overwrite super.\n");
                sb.append("     *\n     * @return String representation of the object.\n");
                sb.append("     */\n");
                sb.append("    public String toString() {\n");
                sb.append("        StringBuffer sb = new StringBuffer(super.toString());\n\n");
                sb.append(sb3.toString());
                sb.append("\n        return sb.toString();\n");
                sb.append("    }\n\n");
                sb.append("}//"+className);
                //write to file:
                String text = sb.toString();
                BufferedWriter bw = null;
                try {
                    bw = new BufferedWriter(new FileWriter(file));
                    bw.write(text, 0, text.length());
                } finally {
                    if (bw != null) {
                        try { bw.close(); } catch (IOException ioe) { /* ignore */ }
            }//else: input unavailable
        }//createTableBean()

  • Collection class comparation

    Dear all,
    Could you tell me the performance benmark comparation between the collection class (List, Map, Set, Queue, and also class in java.util.concurrent package...)
    Could you give me when to use one class?
    Thank a lot for support.
    Best regards,
    VKnight

    VKnight wrote:
    Dear all,
    Could you tell me the performance benmark comparation between the collection class (List, Map, Set, Queue, and also class in java.util.concurrent package...)There is no "fastest collection." Different collections have different big-O performance metrics in different situations. You'll learn what these are when you learn about the collections.
    Could you give me when to use one class? When you study the collections and learn what each one does, you'll understand which one is appropriate to use in which case.
    There's plenty of information already available for these very broad questions, in books and on the web. There's no point in somebody repeating it here. After you've done your research, if you have a more specific question, feel free to ask.

  • Runtime type of Collection contents?

    I'm pretty certain I know the answer to this question, but anyway:
    In a JavaBean editor, one property of the bean may be a collection of (potentially editable) beans. To edit the property I can display the appropriate editor if I can determine the type of the bean in the collection. A dirty but effective solution is to sample the collection and see what's actually in it. But in the case of an empty collection that isn't possible. (One function of the editor is to add a new bean to the collection.)
    It seems that my only alternative is myCollection.getClass().getTypeParameters(), which tells you what the parameters were when the type was declared, e.g. for Vector<E>, "E", which obviously isn't any help, although it is consonant with the rule that the type parameter "disappears at runtime". (In other words, that Java is a statically typed language.)
    I just want to confirm that I'm not missing something.
    (Btw, a potential, though labor-intensive, solution is to set the collection element type in a BeanInfo attribute. So it's not like this is a dead end. I just want to confirm that I'm understanding it correctly.)
    TIA

    AH HA! It works, but don't ask me why (yet). Here's some test code, using a Method rather than a Field since accessor methods are available through Introspection while Fields aren't:
    public class ATestBean {
        public static void main ( final String[] args ) throws Throwable
            ATestBean bean = new ATestBean();
        public ATestBean ( ) throws Throwable {  super();
            Method m = getClass().getDeclaredMethod("getCollection", new Class[0] );
            Class<?> c = getClassType( m );
        public Collection<AConcreteClass> getCollection()  {
            return null;
        public Class<?> getClassType(final Method meth ) throws Throwable {
            Type type = meth.getGenericReturnType();
            String strType = null;
            if (type instanceof ParameterizedType) {
                String actual = Arrays.toString( ((ParameterizedType)type).getActualTypeArguments() );
                   // actual <- "[class com.x.y.z.AConcreteClass]"
                strType = actual.substring( 7, actual.length()-1 );
            if (strType != null) {
                Class<?> klass = Class.forName(strType);
                return klass;
            return null;
    }Learn something new every day. Thanks.
    Hmmm, looks like Introspector is due for an update...

  • Which type of collection is suitable for below scenario?

    which type of collection is suitable for below scenario?
    A) session.getAttibute("userPref",dad_re);
    possible values inside session are rad_eu,tcd_nid,aa,iod_po
    B)Need to compare with below set of values .
    dad_re
    rad_eu
    aad_vv
    bbd_rt
    ccd_ff
    If matched
    sysout("Matched values"+rad_eu)
    else
      sysout("Non matching with B"+tcd_ni)
    A - will contain only one value for each time and it is superset
    Which collection will use to store B?

    A HashSet.

  • Help needed with collection classes

    Howdie all,
    I'm new to Java, and for the most part, I can do it.
    I'm stuck on how to do the following:
    I have to write a program that simulates a deck of cards, including shuffling (involving cards are re-collected), dealing cards. I have to create 52 objects of the card class. The only things that I can use involve some of the collection classes (arrays, dynamic lists, vectors, dictionaries), queues/stacks
    I dont know:
    ** what to use. should i use a dyn list or a vector
    **how the heck would i shuffle the cards?
    ** for dealing the cards, i figued i would just use a loop to draw a set of cards (face and suit)
    i am not asking for code on how to do it (though pseudo-code/alogorithm may help). i just dont know where to start..i am totally stuck.
    thanks a bunch!

    I would suggest you to use the LinkedList class for the deck representation.
    To create the cards you could use
    for i = 0 to 51
    new Card(i);
    In Card constructor do something like
    int colour = i/13+1; // (1-4, one for each colour)
    int value = i%13+1; // (1-13, ace-king)
    To shuffle you could
    for i = 0 to 100
    j = radom(52)
    k = random(52)
    swap(card#j, card#k)
    This will swap 2 random cards 100 times.
    To draw cards
    Card c = cards.remove(0)
    or
    Card c = cards.remove(radom(cards.size()))
    In the later, the shuffle part is not really needed.
    thought about this some more and now i have another
    question:
    when using a dyn linked library, i am not even sure
    how to create the 52 objects. previously when doing
    project like this, i just used a random function to
    generate the cards, and used switch statements for the
    non-numbered cards and for the suite. how would i do
    accomplish this when using a collection class?
    Howdie all,
    I'm new to Java, and for the most part, I can do it.
    I'm stuck on how to do the following:
    I have to write a program that simulates a deck of
    cards, including shuffling (involving cards are
    re-collected), dealing cards. I have to create 52
    objects of the card class. The only things that Ican
    use involve some of the collection classes (arrays,
    dynamic lists, vectors, dictionaries),queues/stacks
    I dont know:
    ** what to use. should i use a dyn list or avector
    **how the heck would i shuffle the cards?
    ** for dealing the cards, i figued i would just usea
    loop to draw a set of cards (face and suit)
    i am not asking for code on how to do it (though
    pseudo-code/alogorithm may help). i just dont know
    where to start..i am totally stuck.
    thanks a bunch!

  • Find best collection class for the scenarios given

    Hi Everyone,
    Can u help me in answering this questions:
    Indicate the most efficient / appropriate standard Java (JDK 1.4 or lower) collections class for each requirement. Do not use any classes that are not in the standard JDK (e.g. Apache commons-collections classes).
    2.1. An un-ordered, unique collection
    2.2. An insertion-ordered, non-unique collection
    2.3. A sorted, unique collection
    2.4. An insertion-ordered, unique collection
    2.5. Random access to elements within a list
    2.6. Insertion into random points within a list
    2.7. A last-in-first-out queue
    Please let me know what u think ?
    IF possible please tell me the reason why u selected one over the other
    Thanks in advance....

    2.1. An un-ordered, unique collection
    HashSet thereadOkay, why?
    2.2. An insertion-ordered, non-unique collection
    LinkedList thereadOkay, why?
    2.3. A sorted, unique collection
    TreeSet theread
    TreeMap kv pair thereadOkay, but is collection with a small "c" or Collection with a captial "C"? Maps don't implement the Collection interface. In a general sense, you could consider them collections, but in Java land, usually that implies single-valued groupings--i.e., those that implement Collection.
    >
    2.4. An insertion-ordered, unique collection
    LinkedHashSet theread
    LinkedHashMap thereadSame comments as above.
    2.5. Random access to elements within a list
    LinkedList (In fact any class that implements List
    Interface)No. Hint: Do you know what "random access" means, and why LinkedList is not a good choice?
    2.6. Insertion into random points within a list
    LinkedHashSet
    LinkedHashMapNo. It doesn't say anything about uniqueness or k/v pairs.
    2.7. A last-in-first-out queue
    StackOkay.
    2.8. List any of these classes which are not
    thread-safe, if any. How
    would you make these Collections thread-safe?
    HashSet, LinkedList, TreeSet, TreeMap, LinkedHashSet,
    LinkedHashMapI'm not going to match 'em all up one by one, but it seems about right.
    This is typically accomplished by synchronizing on
    some object that naturally encapsulates the collection
    class. If no such object exists, the map should be
    "wrapped" using the Collections.synchronizedMap
    method. This is best done at creation time, to prevent
    accidental unsynchronized access to the map:
    Map m = Collections.synchronizedMap(new TreeMap(...));Sounds about right. Also sounds like it was copied and pasted. If so, do you understand it?

  • Define custom typed collection class

    Hi, I would like to define a custom typed collection class that can hold multiple type elements, to be more concrete, i have a class defined as
    public class MyList extends ArrayList{
    public class TestMyList{
        MyList<MyDataTypeOne> listOne; // i want to use JAVA generics here, but it wont let me
        MyList<MyDataTypeTwo> listTwo;
    }and i got an error saying: "MyList" does not have typed parameters.
    I understand that i need to declare my class as something like
    public class MyList<MyDataTypeOne> extends ArrayList
    but i dont want it to be restricted to <MyDataTypeOne> but multiple types, just like ArrayList. How can i cope with this please, thanks!

    Test the following code:
    import java.util.ArrayList;
    public class MyList<E> extends ArrayList<E>{
         public MyList()
         public static void main(String[] args) {
              MyList<String> lista = new MyList<String>();
              lista.add("Bolivia");
              String x = lista.get(0);
              System.out.println(x);
    }

Maybe you are looking for