Reputation: 11
I want to repeat data from arraylist in java netbenas one by one by pressing jbutton. so i want to know how repeat data from single array list following my code
public class NewJFrame extends javax.swing.JFrame {
private List<String>numbers;
private ListIterator <String>ltr;
public NewJFrame() {
initComponents();
numbers=newArraylist<>();
numbers.add("A");
numbers.add("b");
numbers.add("c");
ltr= numbers.Listinterator();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
ltr.hasnext()
{
system.out.println(ltr.next());}}
out put need to come like
AbcAbc
Upvotes: 0
Views: 130
Reputation: 159086
Since you want iterator to start over from the beginning when it reaches the end, you need to create a new Iterator
, e.g.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (! ltr.hasNext())
ltr = numbers.listInterator();
System.out.println(ltr.next()); // Prints next or first element
}
As an alternative, since its an ArrayList
, you can use indexes to access elements, and wrap the index around using the %
modulus operator, e.g.
private int listIdx;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println(numbers.get(listIdx++ % numbers.size()));
}
Or use an if
statement:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println(numbers.get(listIdx));
if (++listIdx == numbers.size())
listIdx = 0;
}
Upvotes: 1