【发布时间】:2016-04-02 14:20:09
【问题描述】:
我正在使用 swing 制作一个简单的应用程序,而且我是数组列表和列表迭代器的新手。我正在尝试做的是一个按钮,它允许您更新有关数组列表中人员的信息。我应该在不使用 for 或 for-each 循环的情况下做到这一点。这是我的代码:
String searchedName = JOptionPane.showInputDialog(null, "Type in the first name of the person you want to update:");
ListIterator<Student> listIt = peopleArray.listIterator();
while(listIt.hasNext()){
String firstname = listIt.next().getFirstname();
if(searchedName.equalsIgnoreCase(firstname){
String newFirstname = JOptionPane.showInputDialog(null, "Input new first name:");
String newLastname = JOptionPane.showInputDialog(null, "Type in new last name:");
String newEmail = JOptionPane.showInputDialog(null, "Type in new email:");
String newOccupation = JOptionPane.showInputDialog(null, "Type in new occupation:");
listIt.previous().setFirstname(newFirstname);
listIt.next().setLastname(newLastname);
listIt.previous().setEmail(newEmail);
listIt.next().setOccupation(newOccupation);
}
}
此代码有效,但看起来很奇怪。我是否必须像那样跳回第四个(listIt.next() 然后 listIt.previous())还是有更好的方法?
//否
【问题讨论】:
-
你为什么不得到
Student(使用listIt.next())?然后你可以在不影响迭代器的情况下将它操作到你心中的内容。