2017-12-04 9 views
0

jbuttonを押して、javaネットベナのarraylistからデータを1つずつ繰り返したいとします。そう私はあなたが欲しいのでjava netbeansでarrayllistデータを繰り返す方法

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());}} 

アウト

ようABCABC来る必要性を置く

+0

また、あなたは '新しいのArrayList(oldListを)'を使用することができます。 – weaver

+0

@MadProgrammer私はあなたが誤った質問をすると思います。リストは 'A'、' b'、 'c'を含み、OPは各ボタンプッシュのリストから次の値を必要に応じて折り返して印刷したいので、連続するボタンは' A'、 'b'、 – Andreas

+0

@Andreas Clarityはすばらしいことですが、まだ何かを学んでいますが – MadProgrammer

答えて

1

イテレータからやり直すために私のコードに続く単一のアレイのリストからどのように繰り返しデータを知りたいですそれが最後に達したときに始めて、新しいIteratorを作成する必要があります。代替案として

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    if (! ltr.hasNext()) 
     ltr = numbers.listInterator(); 
    System.out.println(ltr.next()); // Prints next or first element 
} 

、そのArrayList以来、あなたは、要素にアクセスするためにインデックスを使用し、例えば、%剰余演算子を使用して索引を折り返すことができます

private int listIdx; 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    System.out.println(numbers.get(listIdx++ % numbers.size())); 
} 

またはifステートメントを使用します。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    System.out.println(numbers.get(listIdx)); 
    if (++listIdx == numbers.size()) 
     listIdx = 0; 
} 
関連する問題