Reputation: 13
I am trying to fetch the data using List but by using iterator. It is displaying me the object. How can I fetch the data from it?
import java.util.*;
class Getter_Setter
{
int id;
String name;
public List<Getter_Setter> buckets;
public String getName()
{
return name;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id=id;
}
public void setName(String name)
{
this.name=name;
}
public void setGetter_Setter(List<Getter_Setter> buck)
{
this.buckets=buck;
}
}
class Simple
{
public static void main(String arg[])
{
run();
}
public static void run()
{
List<Getter_Setter> getList=sum();
Iterator itr=getList.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
public static List<Getter_Setter> sum()
{
List<Getter_Setter> list=new ArrayList<Getter_Setter>();
Getter_Setter get=new Getter_Setter();
get.setId(30);
get.setName("Hanish");
System.out.println(get.getId());
System.out.println(get.getName());
list.add(get);
return list;
}
}
Upvotes: 1
Views: 4428
Reputation: 3904
Since you have not Overridden any toString()
method it's giving you object hash code
you need to override this(end code snippet) to print things what you want to print from that class otherwise
the default toString()
implementation of the Object
class, that is:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
gets called when you pass object in println()
method
class Getter_Setter {
int id;
String name;
public List < Getter_Setter > buckets;
public String getName() {
return name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setGetter_Setter(List < Getter_Setter > buck) {
this.buckets = buck;
}
@Override
public String toString() {
return "Getter_Setter [id=" + id + ", name=" + name + ", buckets="
+ buckets + "]";
}
Upvotes: 0
Reputation: 6149
Your sum
methods returns a typed List<Getter_Setter>
, so you can get a strongly-typed iterator from it :
List<Getter_Setter> getList = sum();
Iterator itr<Getter_Setter> = getList.iterator();
Which allows you to directly retrieve Getter_Setter
elements, on which you can call the getId()
and getName()
methods :
Iterator<Getter_Setter> itr = getList.iterator();
while (itr.hasNext()) {
Getter_Setter item = its.next();
System.out.println(item.getId());
System.out.println(item.getName());
}
Upvotes: 1
Reputation: 900
Use the foreach style to iterate. It is a generic typed iteration method. It automatically makes the objects into your generic type for you. i.e obj to instance of Getter_Setter.
public static void run() {
List < Getter_Setter > getList = sum();
foreach(Getter_Setter g: getList){
System.out.println(g.getId());
System.out.println(g.getName());
}
}
Upvotes: 0