Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2006

Tip: Looking for answers? Try searching our database.

list of loop objects...

Thread view: 
mai - 08 Nov 2006 22:47 GMT
Hi,,
I'm learning Java,, and I was trying to creat a function that performs
a three-level nested loop and returns a list of loop objects indicating
progress through the loop,,but when I ran this code:

package loop;
import java.util.ArrayList;
import java.util.List;

public class Loop{
    public int level;
    public int counter1;
    public int counter2;
    public int counter3;

public Loop(int level,int c1, int c2, int c3){
    this.level=level;
    counter1 = c1;
    counter2 = c2;
    counter3 = c3;
}
public static List<Loop> doLoops() {
    List<Loop> result = new ArrayList<Loop>();
    int cnt1=0;
    int cnt2=0;
    int cnt3=0;

outer: for(;;){
 Loop ob1;
    ob1= new Loop(1, cnt1, cnt2, cnt3);
    result.add(ob1);
    cnt1 +=1;

    middle: for(;;){
        Loop ob2;
        ob2= new Loop(2,cnt1,cnt2,cnt3);
        result.add(ob2);
        cnt2+= 1;

        inner : for(;;){
            Loop ob3;
            ob3 = new Loop(3,cnt1,cnt2,cnt3);
            result.add(ob3);
            cnt3 +=1;

            if (cnt3 % 5 == 0)
                break inner;

            if (cnt3 % 11 == 0)
                break middle;

            if (cnt3 % 14 == 0)
                break outer;

    }
}
}
return result;
}

public static void main(String[] argv) {
    int i;
    for(i=0; i< doLoops().size(); i++)

    System.out.println((doLoops().get(i)));

}
}
I got the following results,,

[loop.Loop@10b62c9, loop.Loop@82ba41, loop.Loop@923e30,
loop.Loop@130c19b, loop.Loop@1f6a7b9, loop.Loop@7d772e,
loop.Loop@11b86e7, loop.Loop@35ce36, loop.Loop@757aef,
loop.Loop@d9f9c3, loop.Loop@9cab16, loop.Loop@1a46e30,
loop.Loop@3e25a5, loop.Loop@19821f, loop.Loop@addbf1, loop.Loop@42e816,
loop.Loop@9304b1, loop.Loop@190d11, loop.Loop@a90653, loop.Loop@de6ced]

Please help me,,
Oliver Wong - 08 Nov 2006 22:55 GMT
> Hi,,
> I'm learning Java,, and I was trying to creat a function that performs
> a three-level nested loop and returns a list of loop objects indicating
> progress through the loop,,but when I ran this code:

[code snipped]

> I got the following results,,
>
[quoted text clipped - 4 lines]
> loop.Loop@3e25a5, loop.Loop@19821f, loop.Loop@addbf1, loop.Loop@42e816,
> loop.Loop@9304b1, loop.Loop@190d11, loop.Loop@a90653, loop.Loop@de6ced]

   What results did you expect (this isn't a sarcastic or rhetorical
question -- I really don't know what it is you're trying to do)? Perhaps you
meant to override the toString() method? See
http://www.javapractices.com/Topic55.cjp

   - Oliver
mai - 08 Nov 2006 23:05 GMT
I was trying to print the values of the list. Which are ,supposesdly,
integer values,
> > Hi,,
> > I'm learning Java,, and I was trying to creat a function that performs
[quoted text clipped - 18 lines]
>
>     - Oliver
mai - 08 Nov 2006 23:23 GMT
Hi,, Thanks for your help,, but I still get the same results even after
writing:
System.out.println(doLoops().get(i).toString());

Please help,,
> I was trying to print the values of the list. Which are ,supposesdly,
> integer values,
[quoted text clipped - 20 lines]
> >
> >     - Oliver
Patricia Shanahan - 09 Nov 2006 00:11 GMT
> Hi,, Thanks for your help,, but I still get the same results even after
> writing:
[quoted text clipped - 23 lines]
>>>
>>>     - Oliver

Please don't add your material at the top - its better to keep things in
order.

You are still calling the Loop object toString method, without having
supplied a toString override in the Loop class. Loop's immediate
superclass is Object, so you are using the Object toString method.

You need to add to Loop a method:

public String toString(){
// build the string you want to describe your loop object.
// return it.
}

Patricia
mai - 09 Nov 2006 01:02 GMT
> > Hi,, Thanks for your help,, but I still get the same results even after
> > writing:
[quoted text clipped - 39 lines]
>
> Patricia

Thanx for your message,, but shouldn't doLoops().get(i) return the
element of the index i in the list,, that's what i understood from the
java doc,, and I don't know how to build the string in the toString
method :s ,, can u help me further more,, Thanx once again
Patricia Shanahan - 09 Nov 2006 01:59 GMT
>>> Hi,, Thanks for your help,, but I still get the same results even after
>>> writing:
[quoted text clipped - 43 lines]
> java doc,, and I don't know how to build the string in the toString
> method :s ,, can u help me further more,, Thanx once again

Are you following a course, tutorial, or book? This exercise, in its
current form, should not appear until after you know a little string
manipulation and have seen some toString examples.

An alternative way is to forget about printing Loop objects directly,
and instead print the fields, for example doLoops().get(i).level.

Patricia
Daniel Pitts - 09 Nov 2006 02:10 GMT
> > > Hi,, Thanks for your help,, but I still get the same results even after
> > > writing:
[quoted text clipped - 44 lines]
> java doc,, and I don't know how to build the string in the toString
> method :s ,, can u help me further more,, Thanx once again

doLoops().get(i) will return the element at index i.  the element at
index I is a "Loop" object, not an integer.

List<Loop> doLoops; // This declares a list of loops.

List<Integer> integers; // This is a list of Integer objects.
Oliver Wong - 09 Nov 2006 15:29 GMT
>> public String toString(){
>> // build the string you want to describe your loop object.
>> // return it.
>> }

[...]
> I don't know how to build the string in the toString
> method :s ,, can u help me further more,, Thanx once again

Add the following method to your Loop object:

public String toString(){
 return "Hello world!";
}

and run your program again, and observe the results. That should give you a
hint as to how to implement your toString() method.

   - Oliver
RedGrittyBrick - 08 Nov 2006 22:58 GMT
> Hi,,
> I'm learning Java,, and I was trying to creat a function that performs
[quoted text clipped - 18 lines]
> }
> public static List<Loop> doLoops() {

<snip>

> public static void main(String[] argv) {
>     int i;
>     for(i=0; i< doLoops().size(); i++)
>
>     System.out.println((doLoops().get(i)));

That returns a reference to the i'th Loop object in the List returned by
doLoops(). If you print a reference you'll get the sort of output you
show below. Maybe you should write a toString() method for your Loop
object and then

    System.out.println( doLoops().get(i).toString() );

> I got the following results,,
>
[quoted text clipped - 4 lines]
> loop.Loop@3e25a5, loop.Loop@19821f, loop.Loop@addbf1, loop.Loop@42e816,
> loop.Loop@9304b1, loop.Loop@190d11, loop.Loop@a90653, loop.Loop@de6ced]


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.