Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

toArray() in arraylist

 
meghana chintanippu
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
can you please explain this concept
If the returned array of toArray() is modified ,say swapping the position of its elements or by assigning new objects to its elements ,the elements of arraylist wont be effected.but if you modify the state of elements of the returned array,then the modified state of elements will be reflected in the arraylist. what does state here refer to?? and also please explain th whole concept in the paragraph
 
Rajat K Gupta
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can you please tell from where you are quoting the above snippet?
It would be better to understand the context first so that we perceive in the same way author is quoting it.
 
Roel De Nijs
Sheriff
Posts: 10662
144
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This thread will answer all your questions.
 
Chan Ag
Rancher
Posts: 1089
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
meghana chintanippu wrote:can you please explain this concept
If the returned array of toArray() is modified ,say swapping the position of its elements or by assigning new objects to its elements ,the elements of arraylist wont be effected.but if you modify the state of elements of the returned array,then the modified state of elements will be reflected in the arraylist. what does state here refer to?? and also please explain th whole concept in the paragraph


Actually it's just two wrappers holding the same objects now. If you remove an object from one wrapper ( either the ArrayList or the array ) , the object will still be present in the other wrapper. Why should there be a change? If you arrange the objects in the array in one way, why should the ArrayList be affected? It has its own order in which those objects are placed and you haven't changed that order.

If you change the state of an object, obviously it will affect both wrappers ( the ArrayList and the array ), cause both the wrappers have the same object. You are here making changes to the actual object state. So whoever is pointing to this object will be able to see the change.

It is the same object the array is holding.

what does state here refer to??

State refers to exactly what it means in English. The state of the object at a given time is determined by the value(s) at a given time of what the object has( English).

For example, when you create an Employee object-

Lets say you have your Employee class as



and you create an Employee object such as


this is one state the object obj is at a given time till someone changes it.

If someone does this--


The object obj is said to be in a different state now. This is also referred to as 'mutation' or 'state change'.

HIH.

Edit : It's also worth mentioning that when you create an array using the toArray method, the resultant array actually holds new references to the same objects. This is in contrast with the asList() method where the resultant List doesn't really get other references created for the same object. The resultant List in the latter case is just a snapshot of the source array.
 
meghana chintanippu
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
ok thanka for the explanation....
 
Chan Ag
Rancher
Posts: 1089
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Chan Ag wrote:This is in contrast with the asList() method where the resultant List doesn't really get other references created for the same object. The resultant List in the latter case is just a snapshot of the source array.


This is sort of misleading. Actually the resultant List you get after invoking asList() on an array, is just a view. It contains no data, i.e no objects.
So many edits, anyway ..

meghana chintanippu wrote:ok thanka for the explanation....


I shall mark the topic as resolved.



 
meghana chintanippu
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It is from mala gupta book for ocap java7 certification
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic