wishi
wishi

Reputation: 7387

Two-dimensional ArrayList

Just a very small question... I seem to run into too much complexity here: I have to realize an index-structure like {42, someString}. I tried:

Object entry[][] = new Object[1][1];
ArrayList<Object> my_list = new ArrayList<Object>();

However that looks really strange. Isn't there a better much simpler solution to just store some Integer and a String? I need to perfrom search for the Strings and return the Integer... so I thought Collections and ArrayLists are good friends in the Java API.

Upvotes: 3

Views: 28031

Answers (10)

Sindhukumari P
Sindhukumari P

Reputation: 350

                    ArrayList<String> lcname = new ArrayList<String>();
                    lcname.add(cname);
                    
                    ArrayList<String> lsize = new ArrayList<String>();
                    lsize.add(size);

                    Dictionary dictionary = new Hashtable();

                    Hashtable<String, ArrayList<ArrayList>> hashtable = 
                    new Hashtable<String, ArrayList<ArrayList>>();

                    hashtable.put(fname, new ArrayList<>());

                    hashtable.get(fname).add(lcname);
                    hashtable.get(fname).add(lsize);

                    System.out.println(hashtable);                       

Here is the code for dictionaries of list(list). OUTPUT

{file name=[[column name], [size]]}

Upvotes: 0

KKA
KKA

Reputation: 191

    ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
arr2.add(1);
arr2.add(2);
arr2.add(3);
arr1.add(arr2);

for(int i=0;i<arr1.size();i++){
    System.out.println("i:"+arr1.get(i));

    for(int j=0;j<((ArrayList)arr1.get(i)).size();j++){
    System.out.println("j:"+((ArrayList)arr1.get(i)).get(j));
    }
}

output: i:[1, 2, 3]

j:1
j:2
j:3

Upvotes: 0

mario
mario

Reputation: 69

Map may not be used instead of an ArrayList when you require the order to be maintained.

Upvotes: 0

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 298818

Solution: use a Map

Uhm, do you perhaps need a Map?

Map<String,Integer> map = new HashMap<String,Integer>();
map.put("Some String", 42);
// or, more correctly:
map.put("Some String", Integer.valueOf(42));

You can search it using

Integer result = map.get("Some String");

Reference: Sun Java Tutorial > Collection Trail > Interfaces > The Map Interface


Fixing the OP's Code

BTW, the code in the question is flawed. Here's how you would do it if you wanted to use a List of object arrays (which you shouldn't):

// single dimension, not multi-dimension
Object[] entry = new Object[]{"Some String",Integer.valueOf(42)};
// use interface as variable, not implementation type
// generic type is object array, not object
List<Object[]> myList = new ArrayList<Object[]>();
// add array to list
myList.add(entry);

Now you could search like this:

for(final Object[] candidate : myList){
    if("Some String".equals(candidate[0])){
        System.out.println("Result: " + candidate[1]);
        break;
    }
}

However, this is just for reference, don't do it this way. The Collections Framework contains solutions for almost all standard cases. Use a Map.

Upvotes: 18

initialZero
initialZero

Reputation: 6367

If I understand correctly you should use a Map.

Map<Integer, String> map = new HashMap<Integer, String>();

map.put(42, "someString");
String str = map.get(42);

Upvotes: 2

lweller
lweller

Reputation: 11317

Simply use a HashMap

Map<String,Integer> map = new HashMap<String,Integer>();
map.put("foo",42);

Upvotes: 1

Navi
Navi

Reputation: 8736

Make a tuple class

 public Class IntegerStringTuple {
    private Integer number;
    private String string;

    //setters and getters etc.
 }

Upvotes: 2

mR_fr0g
mR_fr0g

Reputation: 8722

I would use a Map. Maps are used to store key value pairs.

Map<String, Integer> map = new HashMap<String, Integer>();

Upvotes: 0

Mark Tozzi
Mark Tozzi

Reputation: 10903

It sounds like you want a Map

Upvotes: 0

fmucar
fmucar

Reputation: 14548

why not use a map?

Map<String,Object>

Upvotes: 0

Related Questions