我想创建一个程序,允许用户删除员工与指定的工资单号码。
import java.util.*;
import personnelPackage.Personnel;
public class ArrayListTest
{
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args)
{
long searchQuery;
ArrayList<Personnel> staffList = new ArrayList<Personnel>();
Personnel[] staff =
{new Personnel(123456,"Smith","John"),
new Personnel(234567,"Jones","Sally Ann"),
new Personnel(999999,"Black","James Paul")};
for (Personnel person:staff)
staffList.add(person);
do
{
showDisplay(staffList);
System.out.print("\nPlease enter a payroll number to search: ");
searchQuery = keyboard.nextLong();
searchForPayrollNumber(staffList, searchQuery);
}while(!(searchQuery == 0));
}
private static void showDisplay(ArrayList<Personnel> staffList)
{
System.out.print("\n------------- CURRENT STAFF LIST -------------\n");
for (Personnel person : staffList)
{
System.out.println("Payroll number: " + person.getPayNum());
System.out.println("Surname: " + person.getSurname());
System.out.println("First name(s): " + person.getFirstNames() + "\n");
}
}
public static void searchForPayrollNumber(ArrayList<Personnel> staffList, long searchQuery)
{
long index = staffList.indexOf(searchQuery);;
for (Personnel person: staffList)
{
if (person.getPayNum() == searchQuery)
{
System.out.print("\n------------- Staff member found and removed! -------------");
System.out.println("\n\nFirst Name(s): " + person.getFirstNames());
System.out.println("\nSurname: " + person.getSurname());
System.out.print("\n-----------------------------------------------");
staffList.remove(index);
return;
}
}
System.out.print("\n------------- No staff members found. Program terminated -------------");
return;
}
}
java(在其名为PersonnelPackage
的包中)
package personnelPackage;
public class Personnel
{
private long payrollNum;
private String surname;
private String firstNames;
public Personnel(long payrollNum, String surname, String firstNames)
{
this.payrollNum = payrollNum;
this.surname = surname;
this.firstNames = firstNames;
}
public long getPayNum()
{
return payrollNum;
}
public String getSurname()
{
return surname;
}
public String getFirstNames()
{
return firstNames;
}
public void setSurname(String newName)
{
surname = newName;
}
}
当我输入工资单号码时,我的程序只识别第一个工作人员。任何其他工作人员都不会被‘发现’。我在哪里出了问题?如何从数组中删除特定的工资单号码并向用户请求另一个输入(直到数组为“空”)。
删除else
块中的return
语句。
for (Personnel person: staff)
{
if (person.getPayNum() == searchQuery)
{
System.out.print("\n------------- Staff member found! -------------");
System.out.println("\n\nFirst Name(s): " + person.getFirstNames());
System.out.println("Surname: " + person.getSurname());
return;
}
else
{
System.out.print("\n------------- No staff members found -------------");
return; // Remove this one.
}
}
通过在条件的每个分支中都有一个return语句,这个循环将只执行一次。
请注意,您可能还希望将els
的内容移到循环之外,否则,对于每个检查的人员,您都将被告知“没有找到工作人员”。
for (Personnel person: staff)
{
if (person.getPayNum() == searchQuery)
{
System.out.print("\n------------- Staff member found! -------------");
System.out.println("\n\nFirst Name(s): " + person.getFirstNames());
System.out.println("Surname: " + person.getSurname());
return;
}
}
System.out.print("\n------------- No staff members found -------------");
要进行有效的移除,需要使用迭代器
;增强的for循环不起作用。粗略的实现如下所示:
Iterator<Personnel> it = staff.iterator();
while (it.hasNext()) {
Personnel person = it.next();
if (person.getPayNum() == searchQuery)
{//...打印等it.remove();return;}}
Swift 5.x Set 访问和修改 1.遍历 Set 可以使用for-in遍历Set 因为Set是无序的, 如果要顺序遍历Set, 使用sorted()方法 let courses: Set = ["Math", "English", "History"] for course in courses { print(course) } print("--- 分割线 ---") for
问题内容: 我有以下字典: 我想将一个条目附加到key1-> key2-> key3上,其值为’blah’,产生: 我正在寻找一种与键的数量无关的通用解决方案,即即使不存在从key3向下的键,key1-> key2-> key3-> key4-> key5也应该起作用。这样我得到: 提前致谢。 问题答案: 您可以使用该函数遍历一系列嵌套字典: 演示: 当密钥不存在时,此版本引发异常: 但您可以替换
我有一个问题: 我有一个列表Java,我填充了不同的值。例如,我有: 我也有其他价值观。现在,我想在这个列表中只搜索第一个字段。例如,我想要A的indexOf。我尝试过写这段代码: 但我得到-1作为回报。我想知道在加载数组时如何访问列表中的字段。
问题内容: 我正在读取文件并将其存储在t1中。如何访问t1中的元素?当我尝试打印时,我得到的是地址而不是值。还有和之间的区别是什么? 输出: 问题答案: String []是一个字符串数组,因此其未如您所愿打印的原因,请尝试: 或更简洁: 或者更好:
问题内容: 如何从列表中的每个元组返回第二个值? 所需的输出: 问题答案: 具有列表理解能力。
问题内容: 我的flask views.py中有这个 我的样本.html中有这个 这给了我一个空的计数变量。如何获得与python中的测试列表相同的计数? 问题答案: 当你将变量插入模板时,{{ test }}它将采用对象表示形式。对于int的列表,[1,2,3,4,5,6]它将被呈现为[1, 2, 3, 4, 5, 6],因此它是有效的javascript数组,但是此方法对于不具有类似javas