2017-12-04 5 views
0

jbutton을 눌러 Java Netbenas에서 arraylist의 데이터를 하나씩 반복하고 싶습니다. 그래서 난 당신이 원하기 때문에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 void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    System.out.println(numbers.get(listIdx++ % numbers.size())); 
} 

또는 if 문 사용

private int listIdx; 

:

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