The way of Java

ArbolOne arbolone at gmail.com
Sat Oct 26 12:27:09 UTC 2024


Thanks!

I realized the mistake after I posted the question, however, my real 
concern is about displaying the data inside the ArrayList.

// updated example

public class NamesRecord{
     String id;
     ...
     // Setters and Getters
     public String getId(){ return this.id; }
}

// Tres Dorritos Despues
     // aoe.getAllNames() returns an ArrayList<NamesRecord> object 
containing 13 elements
     // each element has a unique value
     var localArrayList = new ArrayList<NamesRecord>(aoe.getAllNames());
     for(int i = 0; i != localArrayList.size(); i++){
*/System.err.println(localArrayList.get(i).getId() );/* // <-- keeps 
displaying the same value

     }

Where did I go wrong here?


Thanks so much in advance.


On 2024-10-26 7:43 a.m., Olexandr Rotan wrote:
>
> Hello. In both examples you redeclare variable inside loop on each new 
> iteration. This behaviour is shared for all c-like languages. Each 
> time you enter a loop body, you "redeclare" (doubt it's JLS concept) 
> variable and initialize it with value 1. In the end of loop you in 
> fact increment variable, but it has no effect since variable is 
> reinitialized on next loop iteration.
> Your best choice is to move variable intiialization right before the 
> loop. This way you will get the desired behaviour.
> PS: just a suggestion for you as newbie. Take a look at "var" keyword. 
> This will make your programing experience much more pleasant imo :)
>
>
> On Sat, Oct 26, 2024, 13:18 ArbolOne <arbolone at gmail.com> wrote:
>
>     openjdk 17.0.13 2024-10-15
>     OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
>     OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
>     mode, sharing)
>
>     public class NamesRecord{
>         String id;
>         ...
>         // Setters and Getters
>         public String getId(){
>             return this.id <http://this.id>;
>         }
>     }
>
>     // Tres Dorritos Despues
>
>     main(){
>         // aoe.getAllNames() returns an ArrayList<NamesRecord> object
>     containing 13 elements
>         // each element has a unique value
>         var localArrayList = new
>     ArrayList<NamesRecord>(aoe.getAllNames());
>         // Display all id values in NamesRecord <=== Only prints one
>     id NamesRecord::id value 13 times
>         for(NamesRecord mydto : localArrayList){
>             Integer pos = 1;
>             System.out.print(pos + " ID is : ");
>             System.err.print(mydto.getId() );
>             pos++; // <== This value does not increment
>         }
>
>         // Second try, but same result
>         for(int i = 10; i != localArrayList.size(); i++){
>             System.out.print("\'i\' value is : ");
>             System.err.println(i); // <== This value does increment
>             Integer pos = 1;
>             System.out.print(pos + " ID is : ");
>             System.err.println(localArrayList.get(i).getId() );
>             pos++; // <== This value does not get incremented
>         }
>
>         // Third try, but the similar result
>         // Please note that the value of pos is never incremented <==
>         NamesRecord[] array = new NamesRecord[localArrayList.size()];
>             array = localArrayList.toArray(array);
>             for(NamesRecord mydto : array){
>                 Integer pos = 1;
>                 System.out.print(pos + " ID is : ");
>                 p.setTimer(1);
>                 System.err.println(mydto.getId() );
>                 pos++; // <== This value does not get incremented
>          }
>     }
>
>     Hello.
>     When looping through the ArrayList or even the Array[] to display
>     the content stored in NamesRecord::id only one value is displayed;
>     what I'd like to do is to display all the id values stored in the
>     ArrayList or Array[] object.
>     However, as documented in the snip above, Java behaviour is not
>     what I expected; mind you, I am fairly new in Java.
>     So, my question is, what am I doing wrong?
>     If there is something wrong, would you point it out and help me
>     resolve it, please.
>
>     Is it a bug that came in the recent update I got from Debian?
>     If so, how do I report the bug to OpenJDK?
>
>     Thanks in advance.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jdk-dev/attachments/20241026/7e9939e6/attachment-0001.htm>


More information about the jdk-dev mailing list