Alex Rivera | Logout

ArrayList - How to modify a member of an object?

Asked 2012-04-07T08:43:49.523
45

I have a number of Customer objects stored in an ArrayList. My Customer class has 2 data members: Name and Email. Now I want to modify just the Email for Customer "Doe".

Now if "Doe" is located at index 3 in the list, I know I can write this line:

myList.set( 3, new Customer( "Doe", "j.doe@supermail.com" ) );

But that means creating a new object. If I have a very big list, I suppose the process would be very slow. Is there any other way to directly access the data member of an Object stored in an ArrayList, maybe by using another kind of Collection than ArrayList?

Edit
Report

1 Answer

1

If you need fast lookup (basically constant time) of a object stored in your collection you should use Map instead of List.

If you need fast iteration of the objects you should use List.

So in your case...

Map<String,Customer> customers = new HashMap<String,Customer>();

//somewhere in the code you fill up the Map, assuming customer names are unique
customers.put(customer.getName(), customer)

// at some later point you retrieve it like this; 
// this is fast, given a good hash
// been calculated for the "keys" in your map, in this case the keys are unique 
// String objects so the default hash algorithm should be fine
Customer theCustomerYouLookFor = customers.get("Doe");

// modify it
theCustomerYouLookFor.setEmail("newEmail@stackoverflow.com")
answered 2012-04-07T09:03:41.567

Your Answer