pulling object methods out of an ArrayList

Discussion in 'Java' started by SuperGh0d@gmail.com, Dec 22, 2006.

  1. Guest

    Hello all.

    I have build several objects and stored them in an ArrayList. I have
    try many different things to iterate through the Arraylist and retrieve
    data stored in the object but I am having no luck. If I just print the
    ArrayList myVars I get

    [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    com.paul.stuff.Variable@76d64a]

    How to I access the objects inside the arraylist?

    thanks!
     
    , Dec 22, 2006
    #1
    1. Advertising

  2. wrote:
    > Hello all.
    >
    > I have build several objects and stored them in an ArrayList. I have
    > try many different things to iterate through the Arraylist and retrieve
    > data stored in the object but I am having no luck. If I just print the
    > ArrayList myVars I get
    >
    > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > com.paul.stuff.Variable@76d64a]
    >
    > How to I access the objects inside the arraylist?
    >
    > thanks!


    If you are using JDK 1.5, try:

    for (Variable var : myVars){

    //do something with 'var'

    }

    -cheers,
    Manish
     
    Manish Pandit, Dec 22, 2006
    #2
    1. Advertising

  3. ck Guest

    By defrault toString method would be invoked when you try to print the
    obtained object directly.
    Even if you try to print the ArrayList toString would be invoked again.
    In most of the cases toString would have the default implementation of
    Object class i.e it would return the

    ClassName@hashcode

    So you are getting the output as
    > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > com.paul.stuff.Variable@76d64a]


    If you would like to get some sensible output for the same you would
    need to over ride the toString method in Variable class.

    May be this small example would make things clear to you


    =============== Code Start ==========================
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    /**
    * @date Dec 22, 2006
    * @author Ck
    * @copyright (c) http://www.gfour.net
    */
    public class TestArrayList {
    public static void main(String [] args){
    Object o=null;
    List< Object> list = new ArrayList<Object>();
    list.add(new String("String1"));
    list.add(new Integer(10));
    list.add(new Person("Sample name Example"));
    Iterator<Object> it = list.iterator();
    // if you iterate normally and toString() is not implemented
    System.out.println("if you iterate normally and toString() is not
    implemented");
    while (it.hasNext()){
    o = it.next();
    System.out.println(o);
    }
    // Here we are casting the object to Person type and invoking getName
    System.out.println(((Person) o).getName());
    }
    }
    class Person {
    Person (String name){
    this.name=name;
    }
    private String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }
    }

    =============== Code ends ========================

    Please remember that String and Integer wrapper classes have the
    toString method to return the value.

    If you modify the Person class as follow you would notice the change in
    output

    =============== Code Starts ===========================

    class Person {
    Person (String name){
    this.name=name;
    }
    private String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }
    // Overriding the toString method of the object class
    public String toString(){
    return this.name;
    }
    }

    ============== Code ends ==============

    Hope this helps.

    Cheers,
    Ck
    http://www.gfour.net



    wrote:
    > Hello all.
    >
    > I have build several objects and stored them in an ArrayList. I have
    > try many different things to iterate through the Arraylist and retrieve
    > data stored in the object but I am having no luck. If I just print the
    > ArrayList myVars I get
    >
    > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > com.paul.stuff.Variable@76d64a]
    >
    > How to I access the objects inside the arraylist?
    >
    > thanks!
     
    ck, Dec 22, 2006
    #3
  4. Alfred Guest

    wrote:
    > Hello all.
    >
    > I have build several objects and stored them in an ArrayList. I have
    > try many different things to iterate through the Arraylist and retrieve
    > data stored in the object but I am having no luck. If I just print the
    > ArrayList myVars I get
    >
    > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > com.paul.stuff.Variable@76d64a]
    >
    > How to I access the objects inside the arraylist?


    via Iterator: (mostly the better way)
    for (Iterator iter = yourList.iterator(); iter.hasNext(); ) {
    System.out.println(iter.next());
    }
    or index:
    for (int i = 0, size = yourList.size(); i < size; i++) {
    System.out.println(yourList.get(i));
    }

    Alfred
     
    Alfred, Dec 22, 2006
    #4
  5. Guest

    Thank you!!!!!! Casting worked great! I really appreciate everyones
    help.

    ck wrote:
    > By defrault toString method would be invoked when you try to print the
    > obtained object directly.
    > Even if you try to print the ArrayList toString would be invoked again.
    > In most of the cases toString would have the default implementation of
    > Object class i.e it would return the
    >
    > ClassName@hashcode
    >
    > So you are getting the output as
    > > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > > com.paul.stuff.Variable@76d64a]

    >
    > If you would like to get some sensible output for the same you would
    > need to over ride the toString method in Variable class.
    >
    > May be this small example would make things clear to you
    >
    >
    > =============== Code Start ==========================
    > import java.util.ArrayList;
    > import java.util.Iterator;
    > import java.util.List;
    >
    > /**
    > * @date Dec 22, 2006
    > * @author Ck
    > * @copyright (c) http://www.gfour.net
    > */
    > public class TestArrayList {
    > public static void main(String [] args){
    > Object o=null;
    > List< Object> list = new ArrayList<Object>();
    > list.add(new String("String1"));
    > list.add(new Integer(10));
    > list.add(new Person("Sample name Example"));
    > Iterator<Object> it = list.iterator();
    > // if you iterate normally and toString() is not implemented
    > System.out.println("if you iterate normally and toString() is not
    > implemented");
    > while (it.hasNext()){
    > o = it.next();
    > System.out.println(o);
    > }
    > // Here we are casting the object to Person type and invoking getName
    > System.out.println(((Person) o).getName());
    > }
    > }
    > class Person {
    > Person (String name){
    > this.name=name;
    > }
    > private String name;
    >
    > public String getName() {
    > return name;
    > }
    >
    > public void setName(String name) {
    > this.name = name;
    > }
    > }
    >
    > =============== Code ends ========================
    >
    > Please remember that String and Integer wrapper classes have the
    > toString method to return the value.
    >
    > If you modify the Person class as follow you would notice the change in
    > output
    >
    > =============== Code Starts ===========================
    >
    > class Person {
    > Person (String name){
    > this.name=name;
    > }
    > private String name;
    >
    > public String getName() {
    > return name;
    > }
    >
    > public void setName(String name) {
    > this.name = name;
    > }
    > // Overriding the toString method of the object class
    > public String toString(){
    > return this.name;
    > }
    > }
    >
    > ============== Code ends ==============
    >
    > Hope this helps.
    >
    > Cheers,
    > Ck
    > http://www.gfour.net
    >
    >
    >
    > wrote:
    > > Hello all.
    > >
    > > I have build several objects and stored them in an ArrayList. I have
    > > try many different things to iterate through the Arraylist and retrieve
    > > data stored in the object but I am having no luck. If I just print the
    > > ArrayList myVars I get
    > >
    > > [com.paul.stuff.Variable@fa4a19, com.paul.stuff.Variable@16bb9b,
    > > com.paul.stuff.Variable@76d64a]
    > >
    > > How to I access the objects inside the arraylist?
    > >
    > > thanks!
     
    , Dec 22, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Saravanan Rathinavelu

    Iterate through ArrayList using an another ArrayList

    Saravanan Rathinavelu, Aug 16, 2003, in forum: ASP .Net
    Replies:
    3
    Views:
    2,799
    Natty Gur
    Aug 19, 2003
  2. Kaidi
    Replies:
    4
    Views:
    2,499
    Kaidi
    Jan 3, 2004
  3. Richard
    Replies:
    6
    Views:
    348
    Richard
    Nov 15, 2003
  4. xz
    Replies:
    16
    Views:
    2,448
  5. Philipp
    Replies:
    6
    Views:
    978
    Arne Vajhøj
    May 28, 2008
Loading...

Share This Page